import { Accessor } from 'solid-js'; type UseAsyncQueueTask = (...args: any[]) => T | Promise; interface UseAsyncQueueResult { state: 'aborted' | 'fulfilled' | 'pending' | 'rejected'; data: T | null; } interface UseAsyncQueueReturn { activeIndex: Accessor; 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(tasks: [UseAsyncQueueTask], options?: UseAsyncQueueOptions): UseAsyncQueueReturn<[UseAsyncQueueResult]>; declare function useAsyncQueue(tasks: [UseAsyncQueueTask, UseAsyncQueueTask], options?: UseAsyncQueueOptions): UseAsyncQueueReturn<[UseAsyncQueueResult, UseAsyncQueueResult]>; declare function useAsyncQueue(tasks: [UseAsyncQueueTask, UseAsyncQueueTask, UseAsyncQueueTask], options?: UseAsyncQueueOptions): UseAsyncQueueReturn<[UseAsyncQueueResult, UseAsyncQueueResult, UseAsyncQueueResult]>; declare function useAsyncQueue(tasks: [UseAsyncQueueTask, UseAsyncQueueTask, UseAsyncQueueTask, UseAsyncQueueTask], options?: UseAsyncQueueOptions): UseAsyncQueueReturn<[ UseAsyncQueueResult, UseAsyncQueueResult, UseAsyncQueueResult, UseAsyncQueueResult ]>; declare function useAsyncQueue(tasks: [ UseAsyncQueueTask, UseAsyncQueueTask, UseAsyncQueueTask, UseAsyncQueueTask, UseAsyncQueueTask ], options?: UseAsyncQueueOptions): UseAsyncQueueReturn<[ UseAsyncQueueResult, UseAsyncQueueResult, UseAsyncQueueResult, UseAsyncQueueResult, UseAsyncQueueResult ]>; declare function useAsyncQueue(tasks: Array>, options?: UseAsyncQueueOptions): UseAsyncQueueReturn>>; export { UseAsyncQueueOptions, UseAsyncQueueResult, UseAsyncQueueReturn, UseAsyncQueueTask, useAsyncQueue };