import { ColumnDef } from '@tanstack/react-table';
import { JSX } from 'react';
type Labels = {
    orderAsc?: string;
    orderDesc?: string;
    filter?: string;
    clearFilter?: string;
    columns?: string;
};
interface Pagination {
    pageIndex: number;
    pageSize: number;
}
interface Sticky {
    enabled: boolean;
    top: number;
}
export interface TableList {
    id: string;
    label: string | JSX.Element;
    onClick?: (id: string) => void;
    checked?: () => boolean | boolean;
    disabled?: boolean;
}
export interface TableButton {
    render: () => JSX.Element;
    list?: {
        options: TableList[];
        toggleableList?: boolean;
        closeOnClick?: boolean;
    };
    disabled?: boolean;
    onClick?: () => void;
}
export interface UncontrolledTableProps {
    data: any;
    columns: ColumnDef<ColumnsTable>[];
    pagination?: Pagination;
    totalPages?: number;
    labels?: Labels;
    tableClassName?: string;
    sticky?: Sticky;
    draggable?: boolean;
    buttons?: TableButton[];
    configs?: TableButton[];
    hideColumns?: string[];
    onClick?: () => void;
    onMouseOver?: () => void;
    onMouseOut?: () => void;
    onColumnVisibilityChange?: (column: string, value: boolean) => void;
    onChangePage?: (pagination: Pagination) => void;
    onFilterClick?: (column: string) => void;
    onSortClick?: (column: string, direction: string) => void;
    onDragEnd?: (data: any[]) => void;
}
export interface ColumnsTable {
    header: string;
    accessorKey: string;
    type: string;
    enableColumnFilter: boolean;
    filterFn: string;
    nofilter?: boolean;
}
export {};
