import { CSSProperties, ReactNode } from 'react';
import { WrapperTableComponentsProps } from '@components/Table/components/TdComponents';
import { fielValueType, filterType, IPagination } from '@components/Table/context';
export interface IMutateDataConfig {
    targetIdProperty?: string;
    targetItems: string[];
    newPropertyName: string;
}
export interface ISetInformation {
    setterFn: (data: any) => void;
    targetDataId?: 'checkedData' | 'data';
}
export interface ITableItem {
    columnName: string;
    thClassName?: string;
    thStyles?: CSSProperties;
    cellType: fielValueType;
    tdClassName?: string;
    cellParam: string;
    isAction?: boolean;
    filter?: {
        type: filterType;
        param: string;
    };
    canSort?: boolean;
    thComponent?: WrapperTableComponentsProps;
    cellComponent?: WrapperTableComponentsProps;
    customCellComponent?: (data: any) => JSX.Element;
}
export interface ITableProps {
    tableConfig: ITableItem[];
    data: any[];
    url?: string;
    headers?: Record<string, number | string>;
    pagination?: IPagination;
    tableClassName?: string;
    wrapperClassName?: string;
    mutateDataConfig?: IMutateDataConfig;
    setItems?: (data: any[]) => void;
    setterDataConfig?: ISetInformation;
    children?: ReactNode;
}
export declare const Table: ({ tableConfig, data, url, headers, pagination, tableClassName, wrapperClassName, mutateDataConfig, setterDataConfig, children, setItems, }: ITableProps) => import("react/jsx-runtime").JSX.Element;
