import { BasicRecord } from './types';

export declare const useCurd: <One extends BasicRecord, Create extends BasicRecord, Update extends BasicRecord, DeleteOne extends BasicRecord>() => {
    update: {
        sendUpdate: (params?: import('./types').UpdateParams<any>) => Promise<any>;
        then<TResult1 = any, TResult2 = never>(onfulfilled?: (value: any) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>): Promise<TResult1 | TResult2>;
        catch<TResult = never>(onrejected?: (reason: any) => TResult | PromiseLike<TResult>): Promise<any>;
        finally(onfinally?: () => void): Promise<any>;
        [Symbol.toStringTag]: string;
        data: import('vue').Ref<import('./types').UpdateResult<Update>>;
        error: import('vue').ShallowRef<unknown>;
        isFinished: import('vue').Ref<boolean>;
        isLoading: import('vue').Ref<boolean>;
        isAborted: import('vue').Ref<boolean>;
        isCanceled: import('vue').Ref<boolean>;
        execute: <T = any>(params?: T) => Promise<any>;
    };
    deleteOne: {
        sendDelete: (params?: import('./types').DeleteParams<any>) => Promise<any>;
        then<TResult1 = any, TResult2 = never>(onfulfilled?: (value: any) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>): Promise<TResult1 | TResult2>;
        catch<TResult = never>(onrejected?: (reason: any) => TResult | PromiseLike<TResult>): Promise<any>;
        finally(onfinally?: () => void): Promise<any>;
        [Symbol.toStringTag]: string;
        data: import('vue').Ref<import('./types').DeleteResult<DeleteOne>>;
        error: import('vue').ShallowRef<unknown>;
        isFinished: import('vue').Ref<boolean>;
        isLoading: import('vue').Ref<boolean>;
        isAborted: import('vue').Ref<boolean>;
        isCanceled: import('vue').Ref<boolean>;
        execute: <T_1 = any>(params?: T_1) => Promise<any>;
    };
    create: {
        sendCreate: (params?: any) => Promise<any>;
        then<TResult1 = any, TResult2 = never>(onfulfilled?: (value: any) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>): Promise<TResult1 | TResult2>;
        catch<TResult = never>(onrejected?: (reason: any) => TResult | PromiseLike<TResult>): Promise<any>;
        finally(onfinally?: () => void): Promise<any>;
        [Symbol.toStringTag]: string;
        data: import('vue').Ref<import('./types').CreateResult<Create>>;
        error: import('vue').ShallowRef<unknown>;
        isFinished: import('vue').Ref<boolean>;
        isLoading: import('vue').Ref<boolean>;
        isAborted: import('vue').Ref<boolean>;
        isCanceled: import('vue').Ref<boolean>;
        execute: <T_2 = any>(params?: T_2) => Promise<any>;
    };
    getOne: {
        getOneData: (params?: One) => Promise<any>;
        then<TResult1 = any, TResult2 = never>(onfulfilled?: (value: any) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>): Promise<TResult1 | TResult2>;
        catch<TResult = never>(onrejected?: (reason: any) => TResult | PromiseLike<TResult>): Promise<any>;
        finally(onfinally?: () => void): Promise<any>;
        [Symbol.toStringTag]: string;
        data: import('vue').Ref<import('./types').GetOneResult<One>>;
        error: import('vue').ShallowRef<unknown>;
        isFinished: import('vue').Ref<boolean>;
        isLoading: import('vue').Ref<boolean>;
        isAborted: import('vue').Ref<boolean>;
        isCanceled: import('vue').Ref<boolean>;
        execute: <T_3 = any>(params?: T_3) => Promise<any>;
    };
};
