import { type ISelectItem } from './adapter';
import { watch } from '#imports';
export type LoadFn = (keyword: string, page: number, perPage: number, value: unknown) => Promise<ISelectItem[]>;
export type WatchDeps = Parameters<typeof watch>[0];
export interface AsyncAdapterOptions {
    /**
     * Default perPage
     * @default 20
     */
    perPage: number;
    /**
     * Typing debounce time
     * @default 500
     */
    debounceTime: number;
}
export default function defineAsyncAdapter(loadFn: LoadFn, deps?: WatchDeps, opts?: Partial<AsyncAdapterOptions>): import("./adapter").IAdapter;
