import { SortingState, VisibilityState, ColumnPinningState, ColumnSizingState, PaginationState, RowSelectionState, ExpandedState, ColumnOrderState } from '@tanstack/react-table';
import { PaginationLocalizationType } from '../pagination-new';
export declare enum SORTING {
    ASC = "asc",
    DESC = "desc"
}
export declare enum ACTIONS {
    PIN = "pin",
    UNPIN = "unpin"
}
export declare enum ALIGNMENT {
    LEFT = "left",
    RIGHT = "right"
}
export declare enum TABLE_SIZE {
    SMALL = "small",
    MEDIUM = "medium",
    LARGE = "large",
    FLEXIBLE = "flexible",
    NESTED = "nested"
}
export declare const PINNED_WIDTH_THRESHOLD = 0.7;
export declare const REACT_VIRTUAL_OVERSCAN = 10;
export declare const REACT_VIRTUAL_TEST_OVERSCAN = 100;
export declare const ROW_SIZE: {
    small: number;
    medium: number;
    large: number;
    flexible: number;
    nested: number;
};
export declare enum COLUMN_SIZE {
    MIN_WIDTH = 92,
    MAX_WIDTH,
    WIDTH = 150,
    SCROLL_OFFSET = 10,
    BORDER_OFFSET = 2
}
export declare enum CHECKBOXES_COLUMN {
    ID = "reserved_checkboxes",
    SIZE = 36
}
export declare enum ROW_ACTIONS_COLUMN {
    ID = "row_actions",
    SIZE = 53
}
export declare enum EXPAND_TOGGLE_COLUMN {
    ID = "row_expand_toggle",
    SIZE = 40
}
export type TableBodyLocalizationType = {
    rowActionsTriggerAriaLabel?: string;
    expandRowButtonAriaLabel?: string;
    selectAllRowsCheckBoxAriaLabel?: string;
    selectRowCheckBoxAriaLabel?: (row: unknown) => string;
    checkboxHeaderCellAriaLabel?: string;
    checkBoxBodyCellAriaLabel?: string;
    expandRowCellAriaLabel?: string;
    tableRowActionsAriaLabel?: string;
    cellAriaLabel?: string;
    disabledRowDefaultLabel?: string;
    emptyCellLabel?: string;
};
export type TableHeaderLocalizationType = {
    headerCellAriaLabel: (headerLabel: string, canSort: boolean) => string;
    headerMenu?: HeaderMenuLocalizationType;
};
export type HeaderMenuLocalizationType = {
    sortAscendingText: string;
    sortDescendingText: string;
    pinText: string;
    unPinText: string;
    disabledPinText: string;
    headerActionsAriaLabel: string;
};
export type TableSettings = {
    enableToolbar?: boolean;
    enableSettings?: boolean;
    enableRowSelection?: boolean;
    enableCheckBoxes?: boolean;
    enablePagination?: boolean;
    enableSorting?: boolean;
    enableSortingRemoval?: boolean;
    enablePinning?: boolean;
    enableColumnResizing?: boolean;
    enableMultiRowSelection?: boolean;
};
export type HeaderToolbarLocalizationType = {
    cancelText: string;
    applyText: string;
    restToDefaultText: string;
    searchText: string;
    titleText: string;
    settingsText: string;
    noResultText: string;
    disabledPinText: string;
    settingsPinnedGroupName: string;
    settingsUnPinnedGroupName: string;
    settingsItemPinnedAriaLabel: string;
    settingsItemSortAriaLabel: string;
    settingsColumnItemAriaLabel: string;
    searchFieldAriaLabel: string;
};
export type HeaderFilterLocalizationType = {
    appliedFilters: string;
    cancelFilters: string;
    applyFilters: string;
    clearFilters: string;
};
export type HeaderToolbarActionsLocalizationType = {
    filter: string;
    itemsFoundText: (count: number, isExceededTotalLimit?: boolean) => string;
    searchText: string;
    searchPlaceholder: string;
};
export interface RowMeta {
    reservedMeta?: {
        isLoading: boolean;
    };
}
export interface Touched {
    width: number;
    columns: string[];
}
interface BaseTableState {
    sorting?: SortingState;
    visible?: VisibilityState;
    pagination?: PaginationState;
    pinned?: ColumnPinningState;
    search?: string;
    selected?: RowSelectionState;
    expandedRows?: ExpandedState;
    columnOrder?: ColumnOrderState;
    touched?: Touched;
}
export interface TableState extends BaseTableState {
    defaultColumnSizing?: ColumnSizingState;
}
export interface TableDefaultState extends BaseTableState {
    columnSizing?: ColumnSizingState;
}
export type TableReactLocalizationPropType = {
    pagination?: PaginationLocalizationType;
    tableHeader?: TableHeaderLocalizationType;
    headerToolbar?: HeaderToolbarLocalizationType;
    tableBody?: TableBodyLocalizationType;
    tableAriaLabel?: string;
};
export {};
