/// <reference types="react" />
import { IMutateDataConfig, ISetInformation, ITableItem } from '..';
export type signalType = '=' | 'contains' | 'equal' | '<' | '>' | '<>' | '>=' | '<=';
export type filterType = 'text' | 'ranged-date' | 'ranged-number';
export type fielValueType = 'amount' | 'date' | 'text' | 'unixDate' | 'longText' | 'tag';
export interface IFilter {
    signal: signalType;
    param: string;
    type: filterType;
    value?: string | number;
    groupSignal?: 'and' | 'or';
}
export interface ISortType {
    desc: boolean;
    selector: string;
    [key: string]: boolean | string;
}
export interface IPagination {
    limit?: string;
    page?: string;
    route?: string;
    filt?: IFilter[];
    group?: string;
    sort?: ISortType[];
    [key: string]: string | undefined | ISortType[] | IFilter[];
}
export interface IMetaDataPagination {
    currentPage: number;
    itemCount: number;
    itemsPerPage: number;
    totalItems: number;
    totalPages: number;
    __typename?: string;
}
export interface ITableContext {
    data?: any[];
    dataConfig?: ITableItem[];
    currentFilterColumn?: string;
    pagination?: IPagination;
    checkedData: Record<string, any[]>;
    metaDataPagination?: IMetaDataPagination;
    url?: string;
    isLoadingTableData?: boolean;
    mutateDataConfig?: IMutateDataConfig;
    setItems?: (data: any[]) => void;
    setterDataConfig?: ISetInformation;
}
export declare const TableProvider: ({ children, defaultValue }: {
    children: import("react").ReactNode;
    defaultValue?: Partial<{
        data: any[];
        dataConfig: ITableItem[];
        currentFilterColumn: string;
        pagination: IPagination;
        checkedData: Record<string, any[]>;
        metaDataPagination: IMetaDataPagination;
        url: string;
        isLoadingTableData: boolean;
        mutateDataConfig: IMutateDataConfig;
        setItems: (data: any[]) => void;
        setterDataConfig: ISetInformation;
    }> | undefined;
}) => import("react/jsx-runtime").JSX.Element, useTableContext: <SelectorOutPut>(selector: (data: {
    data: any[];
    dataConfig: ITableItem[];
    currentFilterColumn: string;
    pagination: IPagination;
    checkedData: Record<string, any[]>;
    metaDataPagination: IMetaDataPagination;
    url: string;
    isLoadingTableData: boolean;
    mutateDataConfig: IMutateDataConfig;
    setItems: (data: any[]) => void;
    setterDataConfig: ISetInformation;
}) => SelectorOutPut) => [SelectorOutPut, (fn: (value: Partial<{
    data: any[];
    dataConfig: ITableItem[];
    currentFilterColumn: string;
    pagination: IPagination;
    checkedData: Record<string, any[]>;
    metaDataPagination: IMetaDataPagination;
    url: string;
    isLoadingTableData: boolean;
    mutateDataConfig: IMutateDataConfig;
    setItems: (data: any[]) => void;
    setterDataConfig: ISetInformation;
}>) => void) => void];
