interface FetchConfig {
    url?: string;
    method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
    headers?: Record<string, string>;
    body?: any;
    credentials?: RequestCredentials;
    cache?: RequestCache;
    signal?: AbortSignal;
}
interface Props {
    url?: string;
    fetchFn?: () => Promise<any>;
    config?: FetchConfig;
    immediate?: boolean;
    refetchInterval?: number;
    refetchOnFocus?: boolean;
    refetchOnReconnect?: boolean;
    staleTime?: number;
    cacheKey?: string;
    retryAttempts?: number;
    retryDelay?: number;
    timeout?: number;
    transform?: (data: any) => any;
    validate?: (data: any) => boolean;
    onSuccess?: (data: any) => void;
    onError?: (error: Error) => void;
    dependencies?: any[];
    lazy?: boolean;
    suspense?: boolean;
    errorBoundary?: boolean;
    loadingWrapper?: boolean;
    loadingText?: string;
    errorText?: string;
    emptyText?: string;
    children?: import('svelte').Snippet<[
        {
            data: any;
            loading: boolean;
            error: Error | null;
            refetch: () => Promise<void>;
            mutate: (data: any) => void;
        }
    ]>;
    loadingFallback?: import('svelte').Snippet;
    errorFallback?: import('svelte').Snippet<[{
        error: Error;
        retry: () => void;
    }]>;
    emptyFallback?: import('svelte').Snippet;
}
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
    new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
        $$bindings?: Bindings;
    } & Exports;
    (internal: unknown, props: Props & {
        $$events?: Events;
        $$slots?: Slots;
    }): Exports & {
        $set?: any;
        $on?: any;
    };
    z_$$bindings?: Bindings;
}
declare const DataFetcher: $$__sveltets_2_IsomorphicComponent<Props, {
    success: CustomEvent<{
        data: any;
    }>;
    error: CustomEvent<{
        error: Error;
    }>;
    loading: CustomEvent<{
        loading: boolean;
    }>;
    refetch: CustomEvent<{
        attempt: number;
    }>;
    cache_hit: CustomEvent<{
        key: string;
        data: any;
    }>;
    cache_miss: CustomEvent<{
        key: string;
    }>;
} & {
    [evt: string]: CustomEvent<any>;
}, {}, {
    refetch: () => Promise<void>;
    mutate: (newData: any) => void;
}, "">;
type DataFetcher = InstanceType<typeof DataFetcher>;
export default DataFetcher;
//# sourceMappingURL=DataFetcher.svelte.d.ts.map