import { Accessor } from 'solid-js'; type UseAsyncQueueTask<T> = (...args: any[]) => T | Promise<T>; interface UseAsyncQueueResult<T> { state: 'aborted' | 'fulfilled' | 'pending' | 'rejected'; data: T | null; } interface UseAsyncQueueReturn<T> { activeIndex: Accessor<number>; result: T; } interface UseAsyncQueueOptions { /** * Interrupt tasks when current task fails. * * @default true */ interrupt?: boolean; /** * Trigger it when the tasks fails. * */ onError?: () => void; /** * Trigger it when the tasks ends. * */ onFinished?: () => void; /** * A AbortSignal that can be used to abort the task. */ signal?: AbortSignal; } /** * Asynchronous queue task controller. * * @see https://solidjs-use.github.io/solidjs-use/shared/useAsyncQueue */ declare function useAsyncQueue<T1>(tasks: [UseAsyncQueueTask<T1>], options?: UseAsyncQueueOptions): UseAsyncQueueReturn<[UseAsyncQueueResult<T1>]>; declare function useAsyncQueue<T1, T2>(tasks: [UseAsyncQueueTask<T1>, UseAsyncQueueTask<T2>], options?: UseAsyncQueueOptions): UseAsyncQueueReturn<[UseAsyncQueueResult<T1>, UseAsyncQueueResult<T2>]>; declare function useAsyncQueue<T1, T2, T3>(tasks: [UseAsyncQueueTask<T1>, UseAsyncQueueTask<T2>, UseAsyncQueueTask<T3>], options?: UseAsyncQueueOptions): UseAsyncQueueReturn<[UseAsyncQueueResult<T1>, UseAsyncQueueResult<T2>, UseAsyncQueueResult<T3>]>; declare function useAsyncQueue<T1, T2, T3, T4>(tasks: [UseAsyncQueueTask<T1>, UseAsyncQueueTask<T2>, UseAsyncQueueTask<T3>, UseAsyncQueueTask<T4>], options?: UseAsyncQueueOptions): UseAsyncQueueReturn<[ UseAsyncQueueResult<T1>, UseAsyncQueueResult<T2>, UseAsyncQueueResult<T3>, UseAsyncQueueResult<T4> ]>; declare function useAsyncQueue<T1, T2, T3, T4, T5>(tasks: [ UseAsyncQueueTask<T1>, UseAsyncQueueTask<T2>, UseAsyncQueueTask<T3>, UseAsyncQueueTask<T4>, UseAsyncQueueTask<T5> ], options?: UseAsyncQueueOptions): UseAsyncQueueReturn<[ UseAsyncQueueResult<T1>, UseAsyncQueueResult<T2>, UseAsyncQueueResult<T3>, UseAsyncQueueResult<T4>, UseAsyncQueueResult<T5> ]>; declare function useAsyncQueue<T>(tasks: Array<UseAsyncQueueTask<T>>, options?: UseAsyncQueueOptions): UseAsyncQueueReturn<Array<UseAsyncQueueResult<T>>>; export { UseAsyncQueueOptions, UseAsyncQueueResult, UseAsyncQueueReturn, UseAsyncQueueTask, useAsyncQueue };