import { ReactNode } from "react";
import { IGridColumns } from "./IGridColumns";
import { TFunction } from "i18next";
export interface IRowInfo {
    type?: string;
    data?: any;
}
interface ITableDefault {
    resource?: string;
    idTable?: string;
    columns?: any;
    dataTable: any;
    height?: number | string;
}
export interface IRowSelected {
    rowData?: any;
    selected?: any;
    rightClick?: boolean;
}
export interface ITable extends ITableDefault {
    ref?: any;
    columns?: any;
    rowHeight?: any;
    showToolbar?: boolean;
    allowFilter?: boolean;
    allowSort?: boolean;
    showPagination?: boolean;
    pageSize?: number;
    totalItem?: number;
    setCurrentPage?: any;
    setPageSize?: any;
    setToolbarAction?: any;
    setCommandData?: any;
    showContextMenu?: boolean;
    setContextMenuClick?: any;
    contextMenuItems?: any[];
    contextMenuOpen?: any;
    listContextHide?: any;
    listContextShow?: any;
    recordDoubleClick?: any;
    allowGrouping?: boolean;
    allowExcelExport?: boolean;
    groupBy?: string;
    exports?: boolean;
    searchTerm?: any;
    setSearchTerm?: any;
    setQueryFilter?: any;
    filterColumnsOptions?: any;
    queryFilter?: any;
    dataSourceFilter?: any;
    setDataSelected?: any;
    selectionSettings?: any;
    listDateRange?: any[];
    allowResizing?: boolean;
    childMapping?: any;
    dataInjectServices?: any;
    editOptions?: any;
    handleClick?: any;
    queryOrder?: any;
    setQueryOrder?: any;
    allowPaging?: boolean;
    setDoubleClickData?: any;
    enablePersistence?: boolean;
    currentPage?: number;
    showColumnChooser?: any;
    frozenColumns?: any;
    groupSettings?: any;
    aggregateColumn?: any;
    dataSelected?: any;
    toolbarTemplate?: any;
    showDropArea?: boolean;
    setRowInfo?: any;
    childGrid?: any;
    searchForm?: boolean;
    rowDataBound?: any;
    columnsAggregate?: any;
    customClass?: any;
    style?: any;
    gridLines?: 'Both' | 'Default';
    isRefreshGrid?: boolean;
    searchColumnsOptions?: any;
    handleContextMenuClick?: (props: any) => void;
    rowSelected?: (props: IRowSelected) => void;
}
export interface ITable2 extends ITableDefault {
    ref?: any;
    columns: IGridColumns[];
    rowHeight?: any;
    hasWorkflow?: boolean;
    showToolbar?: boolean;
    allowFilter?: boolean;
    allowSort?: boolean;
    showPagination?: boolean;
    pageSize?: number;
    totalItem?: number;
    setCurrentPage?: any;
    setPageSize?: any;
    setToolbarAction?: any;
    setCommandData?: any;
    showContextMenu?: boolean;
    handleContextMenuClick?: (props: any) => void;
    contextMenuItems?: any[];
    contextMenuOpen?: (props: any) => void;
    listContextHide?: any;
    listContextShow?: any;
    recordDoubleClick?: any;
    allowGrouping?: boolean;
    allowExcelExport?: boolean;
    groupBy?: string;
    templateGroup?: any;
    exports?: boolean;
    searchTerm?: any;
    setSearchTerm?: any;
    setQueryFilter?: any;
    filterColumnsOptions?: any;
    queryFilter?: any;
    dataSourceFilter?: any;
    selectionSettings?: any;
    listDateRange?: any[];
    allowResizing?: boolean;
    childMapping?: any;
    dataInjectServices?: any;
    editOptions?: any;
    handleClick?: any;
    queryOrder?: any;
    setQueryOrder?: any;
    setDoubleClickData?: any;
    allowPaging?: boolean;
    handleDoubleClick?: (props: any) => void;
    enablePersistence?: boolean;
    currentPage?: number;
    showColumnChooser?: any;
    frozenColumns?: any;
    groupSettings?: any;
    aggregateColumn?: any;
    toolbarTemplate?: any;
    showDropArea?: boolean;
    searchForm?: boolean;
    rowSelected?: (props: IRowSelected) => void;
    columnsAggregate?: IColumnsAggregate[];
    customClass?: any;
    typeSelect?: 'Multiple' | 'Single';
    dataSelected?: any;
    rowDataBound?: any;
    gridLines?: 'Both' | 'Default';
    isRefreshGrid?: boolean;
    t: TFunction;
}
export interface IContextMenu {
    key: string;
    icon?: any;
    label: string;
    text?: string;
    className?: string;
    action: any;
    children?: IContextMenu[];
}
export interface IRowInfo {
    type?: string;
    data?: any;
    index?: number;
}
export interface IListOptionFilter {
    key?: string;
    data?: any;
}
export interface ITableTemplate extends ITableDefault {
    typeModal?: boolean;
    setDataTable?: any;
    allowPaging?: boolean;
    pageSize?: number;
    totalItem?: number;
    setCurrentPage?: any;
    setPageSize?: any;
    showContextMenu?: boolean;
    setContextMenuClick?: any;
    contextMenuItems?: any[];
    contextMenuOpen?: any;
    listContextShow?: any;
    listContextHide?: any;
    recordDoubleClick?: any;
    allowExcelExport?: boolean;
    setDataSelected?: any;
    selectionSettings?: any;
    allowResizing?: boolean;
    setDoubleClickData?: any;
    currentPage?: number;
    inlineEdit?: boolean;
    setCommandClick?: any;
    allowEditOnDblClick?: boolean;
    allowDeleting?: boolean;
    allowEditing?: boolean;
    allowAdding?: boolean;
    allowSelection?: boolean;
    listDelete?: any;
    setListDelete?: any;
    rowDataBound?: any;
    columnsAggregate?: any;
    customClass?: any;
}
export type ITypeAggregate = 'Sum' | 'Average' | 'Min' | 'Max' | 'Count' | 'Truecount' | 'Falsecount' | 'Custom';
export interface IColumnsAggregate {
    field: string;
    type: ITypeAggregate;
    value: any;
    currency?: any;
    showCurrency?: boolean;
    label?: string | ReactNode;
}
export {};
