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>; }