import { ChangeEvent, ReactNode } from "react";
type TableRow = {
    [key: string]: ReactNode | string | JSX.Element;
};
type OptionType = {
    label: string;
    value: string;
};
type OptionsActions = {
    text: ReactNode;
    icon?: ReactNode;
    onClick?: () => void;
    feature?: boolean;
    noPadding?: string;
    size: "small" | "large" | "medium" | "extraLarge" | "twoXLarge" | "expressive";
    hasIconSvg?: boolean;
    width?: string;
};
export type IcolumnType = {
    id: string;
    label: ReactNode;
    name: string;
    hasFilter?: boolean;
    width?: string;
    text: boolean;
    value?: string;
    placeholder?: string;
    options?: OptionType[];
    onChange?: (event: React.ChangeEvent<HTMLInputElement> | React.ChangeEvent<HTMLTextAreaElement>) => void;
    onChangeMoney?: (event: ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => void;
    onChangeDrop?: (data: {
        selectedItem: any;
    }) => void;
    type?: string;
    paddingDrop?: string;
};
export type TableProps = {
    columnTitles: IcolumnType[];
    clearFilesFilter: boolean;
    rowData: TableRow[];
    pageSizes: number[];
    actions?: OptionsActions[];
    label?: ReactNode;
    buttons?: ButtonTable[];
    pagination?: boolean;
    onChangePage?: (event: number) => void;
    onChangePageSizes?: (event: number) => void;
    search?: boolean;
    nofilter?: boolean;
    messagedatalength?: ReactNode;
    onFilterStateChange?: (isFiltering: boolean, data: TableRow[]) => void;
    width?: string;
    sizeSearch?: "small" | "large" | "medium";
    rowSizes?: string;
    label_node?: ReactNode;
    columnSizes?: string;
    headerAction?: {
        active: boolean;
        count: number;
        margin?: string;
    };
    onChangeSearch?: (event: React.ChangeEvent<HTMLInputElement>) => void;
    stickyFirstColumn?: boolean;
    radiusButtonFilter: number;
    column_storage_name: string;
    widthOverflow?: string;
    values?: {
        [key: string]: any;
    };
    totalRecords?: number;
    datePicker?: {
        label: string;
        type?: string;
        value?: string;
        onChange?: (event: React.ChangeEvent<HTMLInputElement> | React.ChangeEvent<HTMLTextAreaElement>) => void;
    };
};
type ButtonTable = {
    label: string;
    onClick?: () => void;
    icon?: string | ReactNode;
    kind: "primary" | "secondary" | "tertiary" | "ghost" | "dangerPrimary" | "dangerTertiary" | "dangerGhost";
    position?: "right" | "left";
    width?: string;
    hasIconSvg?: boolean;
    dimension?: string;
    size?: "small" | "large" | "medium" | "extraLarge" | "twoXLarge" | "expressive";
};
export declare const ContainerFather: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
export declare const TableColumnDrag: ({ columnTitles, pageSizes, rowData, label, buttons, search, sizeSearch, width, messagedatalength, clearFilesFilter, headerAction, actions, columnSizes, rowSizes, radiusButtonFilter, column_storage_name, values, widthOverflow, datePicker, nofilter, onFilterStateChange, onChangeSearch, stickyFirstColumn, onChangePage, onChangePageSizes, totalRecords, label_node, pagination, }: TableProps) => import("react/jsx-runtime").JSX.Element;
export {};
//# sourceMappingURL=index.d.ts.map