import { BaseRecord, MetaDataQuery } from "../../interfaces"; export interface Pagination { current?: number; pageSize?: number; } export interface Search { field?: string; value?: string; } export declare type CrudOperators = "eq" | "ne" | "lt" | "gt" | "lte" | "gte" | "in" | "nin" | "contains" | "ncontains" | "containss" | "ncontainss" | "null"; export declare type CrudFilter = { field: string; operator: CrudOperators; value: any; }; export declare type CrudSort = { field: string; order: "asc" | "desc"; }; export declare type CrudFilters = CrudFilter[]; export declare type CrudSorting = CrudSort[]; export interface CustomResponse { data: TData; } export interface GetListResponse { data: TData[]; total: number; } export interface CreateResponse { data: TData; } export interface CreateManyResponse { data: TData[]; } export interface UpdateResponse { data: TData; } export interface UpdateManyResponse { data: TData[]; } export interface GetOneResponse { data: TData; } export interface GetManyResponse { data: TData[]; } export interface DeleteOneResponse { data: TData; } export interface DeleteManyResponse { data: TData[]; } export interface IDataContext { getList: (params: { resource: string; pagination?: Pagination; sort?: CrudSorting; filters?: CrudFilters; metaData?: MetaDataQuery; }) => Promise>; getMany: (params: { resource: string; ids: string[]; metaData?: MetaDataQuery; }) => Promise>; getOne: (params: { resource: string; id: string; metaData?: MetaDataQuery; }) => Promise>; create: (params: { resource: string; variables: TVariables; metaData?: MetaDataQuery; }) => Promise>; createMany: (params: { resource: string; variables: TVariables[]; metaData?: MetaDataQuery; }) => Promise>; update: (params: { resource: string; id: string; variables: TVariables; metaData?: MetaDataQuery; }) => Promise>; updateMany: (params: { resource: string; ids: string[]; variables: TVariables; metaData?: MetaDataQuery; }) => Promise>; deleteOne: (params: { resource: string; id: string; metaData?: MetaDataQuery; }) => Promise>; deleteMany: (params: { resource: string; ids: string[]; metaData?: MetaDataQuery; }) => Promise>; getApiUrl: () => string; custom: (params: { url: string; method: "get" | "delete" | "head" | "options" | "post" | "put" | "patch"; sort?: CrudSorting; filters?: CrudFilter[]; payload?: {}; query?: {}; headers?: {}; metaData?: MetaDataQuery; }) => Promise>; } export interface IDataContextProvider { getList: (params: { resource: string; pagination?: Pagination; sort?: CrudSorting; filters?: CrudFilters; metaData?: MetaDataQuery; }) => Promise>; getMany: (params: { resource: string; ids: string[]; metaData?: MetaDataQuery; }) => Promise>; getOne: (params: { resource: string; id: string; metaData?: MetaDataQuery; }) => Promise>; create: (params: { resource: string; variables: TVariables; metaData?: MetaDataQuery; }) => Promise>; createMany: (params: { resource: string; variables: TVariables[]; metaData?: MetaDataQuery; }) => Promise>; update: (params: { resource: string; id: string; variables: TVariables; metaData?: MetaDataQuery; }) => Promise>; updateMany: (params: { resource: string; ids: string[]; variables: TVariables; metaData?: MetaDataQuery; }) => Promise>; deleteOne: (params: { resource: string; id: string; metaData?: MetaDataQuery; }) => Promise>; deleteMany: (params: { resource: string; ids: string[]; metaData?: MetaDataQuery; }) => Promise>; getApiUrl: () => string; custom?: (params: { url: string; method: "get" | "delete" | "head" | "options" | "post" | "put" | "patch"; sort?: CrudSorting; filters?: CrudFilter[]; payload?: {}; query?: {}; headers?: {}; metaData?: MetaDataQuery; }) => Promise>; }