import { EnumTaskState } from '../hooks/useTask';
export type GlobalFetchValueType<TValue = any, TRunTask extends (...args: any[]) => void = () => void> = {
    data?: TValue;
    isLoading: boolean;
    error?: string;
    refetch: TRunTask;
    reset: (...args: any) => void;
    cancel: (...args: any) => void;
    isSuccess: boolean;
    isError: boolean;
    isIdle: boolean;
    status: EnumTaskState;
};
export declare function createInitGlobalFetchValue<TValue = any, TRunTask extends (...args: any[]) => void = () => void>(data?: TValue, initRunTask?: TRunTask, cancel?: () => void, reset?: () => void): {
    data: TValue | undefined;
    isLoading: boolean;
    error: undefined;
    refetch: TRunTask;
    reset: () => void;
    cancel: () => void;
    isSuccess: boolean;
    isError: boolean;
    isIdle: boolean;
    status: EnumTaskState;
};
export default function fetchActionsCreators<TPrefix extends string, TValue extends any, TActions extends Record<string, (...args: [state: GlobalFetchValueType<TValue>, ...any[]]) => GlobalFetchValueType<TValue>>, TRunTask extends (...args: any[]) => void = () => void>(key: TPrefix, initData: GlobalFetchValueType<TValue, TRunTask>, actions?: TActions): {
    reducer: (state: GlobalFetchValueType<TValue, TRunTask> | undefined, action: {
        type: `${TPrefix}/initFetching` | `${TPrefix}/startFetching` | `${TPrefix}/successFetching` | `${TPrefix}/errorFetching` | `${TPrefix}/cancelFetching` | `${TPrefix}/resetData`;
        payload?: any;
    }) => GlobalFetchValueType<TValue, TRunTask>;
    generateActions: {
        initFetching: (initRunTask: TRunTask, cancel: () => void, reset: () => void) => {
            type: `${TPrefix}/initFetching`;
            payload?: [initRunTask: TRunTask, cancel: () => void, reset: () => void] | undefined;
        };
        startFetching: () => {
            type: `${TPrefix}/startFetching`;
            payload?: [] | undefined;
        };
        successFetching: (data: TValue) => {
            type: `${TPrefix}/successFetching`;
            payload?: [data: TValue] | undefined;
        };
        errorFetching: (error: string) => {
            type: `${TPrefix}/errorFetching`;
            payload?: [error: string] | undefined;
        };
        cancelFetching: () => {
            type: `${TPrefix}/cancelFetching`;
            payload?: [] | undefined;
        };
        resetData: () => {
            type: `${TPrefix}/resetData`;
            payload?: [] | undefined;
        };
    };
};
