import { type AsyncState, type UseAsyncActions, type UseAsyncMeta } from '../useAsync/index.js';
export type UseAsyncAbortableActions<Result, Args extends unknown[] = unknown[]> = {
    abort: () => void;
    reset: () => void;
} & UseAsyncActions<Result, Args>;
export type UseAsyncAbortableMeta<Result, Args extends unknown[] = unknown[]> = {
    abortController: AbortController | undefined;
} & UseAsyncMeta<Result, Args>;
export type ArgsWithAbortSignal<Args extends unknown[] = unknown[]> = [AbortSignal, ...Args];
export declare function useAsyncAbortable<Result, Args extends unknown[] = unknown[]>(asyncFn: (...params: ArgsWithAbortSignal<Args>) => Promise<Result>, initialValue: Result): [
    AsyncState<Result>,
    UseAsyncAbortableActions<Result, Args>,
    UseAsyncAbortableMeta<Result, Args>
];
export declare function useAsyncAbortable<Result, Args extends unknown[] = unknown[]>(asyncFn: (...params: ArgsWithAbortSignal<Args>) => Promise<Result>, initialValue?: Result): [
    AsyncState<Result | undefined>,
    UseAsyncAbortableActions<Result, Args>,
    UseAsyncAbortableMeta<Result, Args>
];
