import type { FormDialogCallback } from '../types/formDialog.js';
import { type GraphqlModelConfigProps } from './graphqlModelOperation.js';
export interface HeaderProps {
    headers?: any[];
}
export interface InitialDataProps {
    initialData?: Record<string, any>;
}
export type GraphqlModelProps = GraphqlModelConfigProps & Partial<HeaderProps> & Partial<InitialDataProps>;
export declare function useGraphqlModel<T extends GraphqlModelProps>(props: T): {
    items: import("vue").Ref<Record<string, any>[], Record<string, any>[]>;
    itemsLength: import("vue").Ref<number, number>;
    search: import("vue").Ref<string | undefined, string | undefined>;
    setSearch: (keyword: string) => void;
    currentOptions: import("vue").Ref<any, any>;
    operationCreate: import("vue").ComputedRef<import("../types/graphqlOperation.js").graphqlOperationObject<any, any>>;
    operationUpdate: import("vue").ComputedRef<import("../types/graphqlOperation.js").graphqlOperationObject<any, any>>;
    operationDelete: import("vue").ComputedRef<import("../types/graphqlOperation.js").graphqlOperationObject<any, any>>;
    operationRead: import("vue").ComputedRef<import("../types/graphqlOperation.js").graphqlOperationObject<any, any>>;
    operationReadPageable: import("vue").ComputedRef<import("../types/graphqlOperation.js").graphqlOperationObject<any, any>>;
    operationSearch: import("vue").ComputedRef<import("../types/graphqlOperation.js").graphqlOperationObject<any, any>>;
    fields: import("vue").ComputedRef<(string | object)[]>;
    canServerPageable: import("vue").ComputedRef<boolean>;
    canServerSearch: import("vue").ComputedRef<boolean>;
    canCreate: import("vue").ComputedRef<boolean>;
    canUpdate: import("vue").ComputedRef<boolean>;
    canDelete: import("vue").ComputedRef<boolean>;
    createItem: (item: Record<string, any>, callback?: FormDialogCallback, importing?: boolean) => Promise<void>;
    importItems: (importItems: Record<string, any>[], callback?: FormDialogCallback) => void;
    updateItem: (item: Record<string, any>, callback?: FormDialogCallback) => Promise<void>;
    deleteItem: (item: Record<string, any>, callback?: FormDialogCallback) => Promise<any>;
    loadItems: (options: any) => Promise<void> | undefined;
    reload: () => Promise<void> | undefined;
    isLoading: import("vue").Ref<boolean, boolean>;
};
