export interface ApiModelPageable {
    page?: number;
    perPage?: number;
    sortBy?: any;
}
export interface ApiModelOperationCallables<TItem = any, TInput = any> {
    read: <T = TItem>(fields?: Array<string | object>, variables?: Record<string, any>, cache?: boolean | number) => Promise<T>;
    readPageable: <T = TItem>(fields?: Array<string | object>, variables?: Record<string, any>, pageable?: ApiModelPageable) => Promise<{
        data: T[];
        meta: {
            totalItems: number;
        };
    }>;
    search: <T = TItem>(fields?: Array<string | object>, variables?: Record<string, any>, search?: any) => Promise<T[]>;
    create: <T = TItem>(input: TInput | Record<string, any>, fields?: Array<string | object>) => Promise<T>;
    update: <T = TItem>(input: TInput | Record<string, any>, fields?: Array<string | object>) => Promise<T>;
    delete: <T = any>(input: TInput | Record<string, any>, fields?: Array<string | object>) => Promise<T>;
}
export declare function useApiModelOperation<TItem = any, TInput = any>(modelName: string): ApiModelOperationCallables<TItem, TInput>;
