import type { OperationResult } from "@urql/core";
import type { BaseRecord, CreateManyParams, DeleteManyParams, GetListParams, GetManyParams, GetOneParams, UpdateManyParams, CustomParams, CreateParams, UpdateParams, DeleteOneParams } from "@refinedev/core";
import type { DocumentNode } from "graphql";
export type GraphQLDataProviderOptions = {
    create?: {
        dataMapper?: (response: OperationResult<any>, params: CreateParams<any>) => Record<string, any>;
        buildVariables?: (params: CreateParams<any>) => Record<string, any>;
    };
    createMany?: {
        dataMapper?: (response: OperationResult<any>, params: CreateManyParams<any>) => BaseRecord[];
        buildVariables?: (params: CreateManyParams<any>) => Record<string, any>;
    };
    getOne?: {
        dataMapper?: (response: OperationResult<any>, params: GetOneParams) => BaseRecord;
        buildVariables?: (params: GetOneParams) => Record<string, any>;
        convertMutationToQuery?: (params: GetOneParams) => DocumentNode;
    };
    getList?: {
        dataMapper?: (response: OperationResult<any>, params: GetListParams) => BaseRecord[];
        getTotalCount?: (response: OperationResult<any>, params: GetListParams) => number;
        buildVariables?: (params: GetListParams) => Record<string, any>;
    };
    getMany?: {
        buildFilter?: (params: GetManyParams) => Record<string, any>;
        dataMapper?: (response: OperationResult<any>, params: GetManyParams) => BaseRecord[];
    };
    update?: {
        dataMapper?: (response: OperationResult<any>, params: UpdateParams<any>) => BaseRecord;
        buildVariables?: (params: UpdateParams<any>) => Record<string, any>;
    };
    updateMany?: {
        dataMapper?: (response: OperationResult<any>, params: UpdateManyParams<any>) => BaseRecord[];
        buildVariables?: (params: UpdateManyParams<any>) => Record<string, any>;
    };
    deleteOne?: {
        dataMapper?: (response: OperationResult<any>, params: DeleteOneParams<any>) => BaseRecord;
        buildVariables?: (params: DeleteOneParams<any>) => Record<string, any>;
    };
    deleteMany?: {
        dataMapper?: (response: OperationResult<any>, params: DeleteManyParams<any>) => BaseRecord[];
        buildVariables?: (params: DeleteManyParams<any>) => Record<string, any>;
    };
    custom?: {
        dataMapper?: (response: OperationResult<any>, params: CustomParams) => Record<string, any>;
        buildVariables?: (params: CustomParams) => Record<string, any>;
    };
};
export declare const defaultOptions: {
    create: {
        dataMapper: (response: OperationResult<any>, params: CreateParams<any>) => any;
        buildVariables: (params: CreateParams<any>) => {
            input: {
                [x: string]: any;
            };
        };
    };
    createMany: {
        dataMapper: (response: OperationResult<any>, params: CreateManyParams<any>) => any;
        buildVariables: (params: CreateManyParams<any>) => {
            input: {
                [x: string]: any[];
            };
        };
    };
    getOne: {
        dataMapper: (response: OperationResult<any>, params: GetOneParams) => any;
        buildVariables: (params: GetOneParams) => {
            id: import("@refinedev/core").BaseKey;
        };
        convertMutationToQuery: (params: GetOneParams) => DocumentNode;
    };
    getList: {
        dataMapper: (response: OperationResult<any>, params: GetListParams) => any;
        getTotalCount: (response: OperationResult<any>, params: GetListParams) => any;
        buildVariables: (params: GetListParams) => {
            sorting: {
                field: string;
                direction: string;
            }[];
            filter: {
                [key: string]: {
                    [key: string]: string | number;
                };
            };
            paging: {
                limit: number;
                offset?: undefined;
            } | {
                limit: number;
                offset: number;
            };
        } | {
            type?: string;
            name?: string;
            value: any;
            list?: boolean;
            required?: boolean;
            sorting: {
                field: string;
                direction: string;
            }[];
            filter: {
                [key: string]: {
                    [key: string]: string | number;
                };
            };
            paging: {
                limit: number;
                offset?: undefined;
            } | {
                limit: number;
                offset: number;
            };
        } | {
            sorting: {
                field: string;
                direction: string;
            }[];
            filter: {
                [key: string]: {
                    [key: string]: string | number;
                };
            };
            paging: {
                limit: number;
                offset?: undefined;
            } | {
                limit: number;
                offset: number;
            };
        };
    };
    getMany: {
        buildFilter: (params: GetManyParams) => {
            id: {
                in: import("@refinedev/core").BaseKey[];
            };
        };
        dataMapper: (response: OperationResult<any>, params: GetManyParams) => any;
    };
    update: {
        dataMapper: (response: OperationResult<any>, params: UpdateParams<any>) => any;
        buildVariables: (params: UpdateParams<any>) => {
            input: {
                id: import("@refinedev/core").BaseKey;
                update: any;
            };
        };
    };
    updateMany: {
        dataMapper: (_response: OperationResult<any>, params: UpdateManyParams<any>) => any[];
        buildVariables: (params: UpdateManyParams<any>) => {
            input: {
                filter: {
                    id: {
                        in: import("@refinedev/core").BaseKey[];
                    };
                };
                update: any;
            };
        };
    };
    deleteOne: {
        dataMapper: (response: OperationResult<any>, params: DeleteOneParams<any>) => any;
        buildVariables: (params: DeleteOneParams<any>) => {
            input: {
                id: import("@refinedev/core").BaseKey;
            };
        };
    };
    deleteMany: {
        dataMapper: (_response: OperationResult<any>, params: DeleteManyParams<any>) => any[];
        buildVariables: (params: DeleteManyParams<any>) => {
            input: {
                filter: {
                    id: {
                        in: import("@refinedev/core").BaseKey[];
                    };
                };
            };
        };
    };
    custom: {
        dataMapper: (response: OperationResult<any>, params: CustomParams) => any;
        buildVariables: (params: CustomParams) => {};
    };
};
//# sourceMappingURL=options.d.ts.map