import { RowData, CellContext as CellContext$1, HeaderContext as HeaderContext$1, ColumnDef as ColumnDef$1, Row, Table as Table$1, HeaderGroup, RowModel as RowModel$1, ColumnSort as ColumnSort$1, ColumnFilter as ColumnFilter$1, PaginationState as PaginationState$1, TableOptions, TableState } from '@tanstack/react-table'; import * as React$1 from 'react'; import React__default, { ReactNode } from 'react'; import { FilterInputValueType, FilterFieldType, SelectItemInterface } from '@krainovsd/react-ui'; import { PresetColorType } from 'antd/es/theme/internal'; import * as react_jsx_runtime from 'react/jsx-runtime'; type TableTypesGetter = { headerRenderProps: HeaderRenderProps; cellRenderProps: CellRenderProps; headerContext: HeaderContext$1; cellContext: CellContext$1; row: RowInterface; table: TableInterface; rowModel: RowModel$1; filterFn: (row: RowInterface, columnId: string, filterValue: unknown) => boolean; sortFn: (rowA: RowInterface, rowB: RowInterface, columnId: string) => number; }; type HeaderContext = HeaderContext$1; type CellContext = CellContext$1; type RowModel = RowModel$1; type DefaultRow = RowData; type ColumnDef = ColumnDef$1; type DefaultGanttData = Record; type ColumnSort = ColumnSort$1; type ColumnFilter = ColumnFilter$1; type ColumnsSortingState = ColumnSort[]; type ColumnsFilterState = ColumnFilter[]; type ColumnsVisibleState = Record; type ColumnsSizingState = Record; type ColumnsExpandState = Record; type ColumnsOrderState = string[]; type PaginationState = PaginationState$1; type TableInterface = Table$1; type RowInterface = Row; type HeaderInterface = HeaderGroup; type FilterFn = (row: RowInterface, columnId: string, filterValue: unknown) => boolean; type SortFn = (rowA: RowInterface, rowB: RowInterface, columnId: string) => number; type CellRenderProps = { context: CellContext; settings?: Settings; }; type CellRenderComponent = React__default.FC>; type HeaderRenderProps = { context: HeaderContext; settings?: Settings; }; type HeaderRenderComponent = React__default.FC>; type FilterRenderProps = { context: ColumnDef; settings?: Settings; }; type FilterRenderComponent = React__default.FC>; type SortRenderProps = { context: HeaderContext; settings?: Settings; }; type SortRenderComponent = React__default.FC>; type CellClassInterface = string | CellClassFn; type CellClassFn = (context: CellContext, settings?: Settings) => string | undefined; type HeaderClassInterface = string | HeaderClassFn; type HeaderClassFn = (context: HeaderContext, settings?: Settings) => string | undefined; type TableCellRenderKey = "default" | "select" | "tag" | "empty" | "drag"; type TableHeaderRenderKey = "default" | "select" | "empty"; type TableFilterRenderKey = "number" | "number-range" | "select" | "string" | "date" | "date-range"; type TableSortRenderKey = "single-arrow" | "double-arrow"; type TableCellClassKey = "common" | "empty" | "nowrap" | "lineClamp" | "wCenter" | "hCenter"; type TableHeaderClassKey = "common" | "empty" | "nowrap" | "lineClamp" | "wCenter" | "hCenter"; type TableCellRenders = Record>; type TableHeaderRenders = Record>; type TableFilterRenders = Record>; type TableSortRenders = Record>; type TableCellClasses = Record) => string)>; type TableHeaderClasses = Record) => string)>; type TableRenderers = { expander?: (props: { context: CellContext; }) => ReactNode; }; type SortingKey = "number" | "string" | "boolean" | "date" | "array" | "string-with-number"; type FilterKey = "equals" | "array-some-in-array" | "array-every-in-array" | "array-equals" | "array-some-in-primitive" | "date-in-range" | "date" | "number-in-range" | "includes-string"; type TablePaginationProps = { table: TableInterface; pageIndex: number; pageSize: number; totalRows: number; pageSizes: number[]; }; type TableFilterProps = { table: TableInterface; filters: Record; filterOptions: FilterFieldType[]; }; type TableEmptyProps = {}; type TableLoaderProps = {}; type DragRowHandler = (sourceIndex: number, targetIndex: number, sourceId: number | string, targetId: number | string) => void; type DefaultCellRenderProps = { arraySeparator?: string; objectPath?: string; mappings?: Record; Link?: (props: { children?: React.ReactNode; context: CellContext; }) => React.ReactNode | null; floatRound?: boolean; floatFixed?: number; dateFormat?: string; customContent?: (context: CellContext) => string | number | boolean; }; type CheckProps$1 = (props: { checked: boolean; onChange: React.ChangeEventHandler; }) => ReactNode; type SelectCellRenderProps = { Check?: CheckProps$1; hover?: boolean; }; type TagColor = keyof PresetColorType | "default"; type TagCellRenderProps = { color?: TagColor | ((content: unknown) => TagColor | undefined); mappings?: Record; bordered?: boolean; filterable?: boolean; }; type DragCellRenderProps = { dragCondition?: (row: Row, index: number) => boolean; }; type DateFilterRenderProps = { format: string; }; type DateRangeFilterRenderProps = { format: string; }; type SelectFilterRenderProps = { options: SelectItemInterface[]; multiple?: boolean; }; type CheckProps = (props: { checked: boolean; onChange: React.ChangeEventHandler; }) => React.ReactNode; type SelectHeaderRenderProps = { Check?: CheckProps; }; type TableColumn> = {}, HeaderRender extends Record> = {}, FilterRender extends Record> = {}, SortRender extends Record> = {}, CellClass extends Record> = {}, HeaderClass extends Record> = {}, FilterType extends Record> = {}, SortType extends Record> = {}> = { id?: string; key: KeyofDeep; icon?: ReactNode; name: string; width?: number; minWidth?: number; maxWidth?: number; leftFrozen?: boolean; rightFrozen?: boolean; resizable?: boolean; sortable?: boolean; filterable?: boolean; draggable?: boolean; grouping?: boolean; expandable?: boolean; expandedShift?: number; tooltip?: ColumnTooltipSettings | boolean; className?: ((context: CellContext) => string | undefined) | string; sortDirectionFirst?: "asc" | "desc"; props?: unknown; sortType?: keyof SortType | SortingKey; filterType?: keyof FilterType | FilterKey; cellRender?: TableCellRendersProps; headerRender?: TableHeaderRendersProps; filterRender?: TableFilterRendersProps; sortRender?: TableSortRendersProps; headerClass?: (keyof HeaderClass | TableHeaderClassKey)[]; additionalHeaderClass?: (keyof HeaderClass | TableHeaderClassKey)[]; cellClass?: (keyof CellClass | TableCellClassKey)[]; additionalCellClass?: (keyof CellClass | TableCellClassKey)[]; headerClassProps?: { [K in keyof HeaderClass]: FnSettings; }[keyof HeaderClass]; cellClassProps?: { [K in keyof CellClass]: FnSettings; }[keyof CellClass]; }; type ColumnTooltipSettings = { auto?: boolean; zIndex?: number; pathToContent?: KeyofDeep; customContent?: string; arraySeparator?: string; }; type DefaultTableCellRenderProps = { component?: "default"; props?: DefaultCellRenderProps; } | { component?: "tag"; props?: TagCellRenderProps; } | { component?: "select"; props?: SelectCellRenderProps; } | { component?: "drag"; props?: DragCellRenderProps; } | { component?: Exclude; props?: never; }; type DefaultHeaderRenderProps = { component?: "select"; props?: SelectHeaderRenderProps; } | { component?: "default"; props?: unknown; } | { component?: Exclude; props?: never; }; type DefaultFilterRenderProps = { component?: "select"; props?: SelectFilterRenderProps; } | { component?: "date"; props?: DateFilterRenderProps; } | { component?: "date-range"; props?: DateRangeFilterRenderProps; } | { component?: Exclude; props?: never; }; type DefaultSortRenderProps = { component?: TableSortRenderKey; props?: never; }; type ComponentProps = T extends (args: infer P extends Record) => any ? P["settings"] : unknown; type FnSettings = T extends (context: infer P, settings: infer S) => any ? S : undefined; type CellRenderMap>> = { [K in keyof CellRender]: { component?: K; props?: ComponentProps; }; }[keyof CellRender]; type TableCellRendersProps> = {}> = CellRenderMap | DefaultTableCellRenderProps; type HeaderRenderMap>> = { [K in keyof HeaderRender]: { component?: K; props?: ComponentProps; }; }[keyof HeaderRender]; type TableHeaderRendersProps>> = HeaderRenderMap | DefaultHeaderRenderProps; type FilterRenderMap>> = { [K in keyof FilterRender]: { component?: K; props?: ComponentProps; }; }[keyof FilterRender]; type TableFilterRendersProps> = {}> = FilterRenderMap | DefaultFilterRenderProps; type SortRenderMap>> = { [K in keyof SortRender]: { component?: K; props?: ComponentProps; }; }[keyof SortRender]; type TableSortRendersProps> = {}> = SortRenderMap | DefaultSortRenderProps; type TableDefaultColumnOptions> = {}, HeaderRender extends Record> = {}, FilterRender extends Record> = {}, SortRender extends Record> = {}, CellClass extends Record> = {}, HeaderClass extends Record> = {}, FilterType extends Record> = {}, SortType extends Record> = {}> = { width?: number; minWidth?: number; maxWidth?: number; resizable?: boolean; sortable?: boolean; filterable?: boolean; draggable?: boolean; expandedShift?: number; tooltip?: ColumnTooltipSettings | boolean; sortDirectionFirst?: "asc" | "desc"; sortType?: keyof SortType | SortingKey; filterType?: keyof FilterType | FilterKey; cellClass?: (keyof CellClass | TableCellClassKey)[]; headerClass?: (keyof HeaderClass | TableHeaderClassKey)[]; cellRender?: keyof CellRender | TableCellRenderKey; headerRender?: keyof HeaderRender | TableHeaderRenderKey; filterRender?: keyof FilterRender | TableFilterRenderKey; sortRender?: keyof SortRender | TableSortRenderKey; }; type TableColumnsSettings> = {}, HeaderRender extends Record> = {}, FilterRender extends Record> = {}, SortRender extends Record> = {}, CellClass extends Record> = {}, HeaderClass extends Record> = {}, FilterType extends Record> = {}, SortType extends Record> = {}> = { columns: TableColumn[]; cellRenders?: CellRender; headerRenders?: HeaderRender; filterRenders?: FilterRender; sortRenders?: SortRender; cellClasses?: CellClass; headerClasses?: HeaderClass; filterTypes?: FilterType; sortTypes?: SortType; defaultColumnOptions?: TableDefaultColumnOptions; }; type IncrementDepth = Limit[N]; type KeyofDeep = Depth extends MaxDepth["length"] ? never : Key extends string ? T[Key] extends Record ? `${Key}.${KeyofDeep>}` | `${Key}` : T[Key] extends (infer U)[] ? U extends Record ? `${Key}[${number}].${KeyofDeep>}` | `${Key}` : `${Key}[${number}]` | `${Key}` : `${Key}` : never; type ColumnSizingSettings = Record; type GanttTaskProps = { row: RowInterface; ganttInfo: GanttInfo; rowInfo: GanttRowInfo; bodyWidth: number | null; rowsMap: Record; hasUpArrow: boolean; hasDownArrow: boolean; }; type GanttTooltipProps = { row: RowInterface; }; type GanttArrowStyleGetter = (info: GanttInfo) => GanttArrowStyle | undefined; type GanttArrowStyle = { color?: string; size?: number; }; type GanttProps = { withGantt?: boolean; ganttVisibleArrowInRange?: boolean; ganttArrowGetAround?: boolean; firstGanttDate?: string; lastGanttDate?: string; ganttRowMini?: boolean; ganttInfoGetter?: (row: RowInterface) => GanttInfo; ganttArrowStyleGetter?: GanttArrowStyleGetter; instantGanttSplitter?: boolean; ganttGrid?: boolean; GanttTooltip?: React.FC>; GanttTask?: React.FC> | undefined; ganttView?: GanttViewType; }; type GanttTypeShapes = "task" | "group" | "milestone"; type GanttViewType = "years" | "months" | "quarters" | "weeks"; type GanttInfo = { id: number | string; start: string; end: string; name: string; type: GanttTypeShapes; progress?: number; dependents?: (string | number)[]; props?: GanttData; }; type GanttDate = { year: number; month: number; day: number; }; type GanttRowInfo = { index: number; left: number; top: number; width: number; height: number; textWidth: number; }; type GanttArrowInfo = { linkId: string; startLeft: number; startTop: number; index: number; direction: "up" | "down"; leftToRightFirst: number; leftToRightSecond: number; rightToLeft: number; topToBottom: number; topToBottomExtra: number; topArrowShift: number; extraCorner: boolean; arrowSize: number; cornerSize: number; size: number; dependId: number | string; dependIndex: number; rowId: number | string; color: string | undefined; }; type TableProps> = {}, HeaderRender extends Record> = {}, FilterRender extends Record> = {}, SortRender extends Record> = {}, CellClass extends Record> = {}, HeaderClass extends Record> = {}, FilterType extends Record> = {}, SortType extends Record> = {}> = TableColumnsSettings & Pick, "getSubRows" | "onExpandedChange" | "columnResizeMode" | "onGroupingChange" | "onColumnOrderChange" | "manualFiltering" | "manualExpanding" | "manualGrouping" | "manualPagination" | "manualSorting" | "onColumnFiltersChange" | "onColumnPinningChange" | "onColumnSizingChange" | "onColumnSizingInfoChange" | "onColumnVisibilityChange" | "onPaginationChange" | "onSortingChange" | "onRowSelectionChange" | "getRowId"> & Pick, "sorting" | "columnFilters" | "columnOrder" | "columnPinning" | "columnSizing" | "columnVisibility" | "expanded" | "grouping" | "pagination" | "rowSelection"> & { rows: RowData[]; frozenHeader?: boolean; showPerf?: boolean; className?: string; renderers?: TableRenderers; withPagination?: boolean; withFilters?: boolean; withTotal?: boolean; totalRows?: number; initialPageSize?: number; pageSizes?: number[]; fullSize?: boolean; virtualColumn?: boolean; rubberColumn?: boolean; virtualColumnOverScan?: number; virtualRows?: boolean; virtualRowSize?: number; virtualRowOverScan?: number; locale?: string; onClickRow?: (row: RowInterface, event: React__default.MouseEvent) => void; onDoubleClickRow?: (row: RowInterface, event: React__default.MouseEvent) => void; Filter?: React__default.FC>; Pagination?: React__default.FC>; Empty?: React__default.FC; Loader?: React__default.FC; loading?: boolean; setTable?: (table: TableInterface) => void; rootRef?: React__default.MutableRefObject; headerRowClassName?: ((header: HeaderInterface) => string | undefined) | string; rowClassName?: ((row: RowInterface) => string | undefined) | string; rowRender?: (row: RowInterface) => React__default.JSX.Element | null | undefined; getExpandedRowModel?: () => (table: TableInterface) => () => RowModel; draggableRow?: boolean; onDraggableRow?: DragRowHandler; } & GanttProps; declare function Table> = {}, HeaderRender extends Record> = {}, FilterRender extends Record> = {}, SortRender extends Record> = {}, CellClass extends Record> = {}, HeaderClass extends Record> = {}, FilterType extends Record> = {}, SortType extends Record> = {}>(props: TableProps): react_jsx_runtime.JSX.Element | null; declare function useVisibleCell(props: CellContext$1): { isVisible: boolean; level: number; }; type CellRenderLinkProps = { Link?: (props: { children?: React.ReactNode; context: CellContext; }) => React.ReactNode | null; context: CellContext; }; declare function CellRenderLink(props: React.PropsWithChildren>): string | number | boolean | Iterable | react_jsx_runtime.JSX.Element | null | undefined; type CellRenderTooltipProps = { tooltip?: ColumnTooltipSettings | boolean; row: RowData; content: string | number | boolean; }; declare function CellRenderTooltip(props: React.PropsWithChildren>): string | number | boolean | Iterable | react_jsx_runtime.JSX.Element | null | undefined; type CellRenderWrapperProps = { className?: string; level: number; context: CellContext; column: ColumnDef; } & React.HTMLAttributes; declare function CellRenderWrapper(props: React.PropsWithChildren>): react_jsx_runtime.JSX.Element; type HeaderRenderWrapperProps = { className?: string; } & React.HTMLAttributes; declare function HeaderRenderWrapper(props: React.PropsWithChildren): react_jsx_runtime.JSX.Element; declare module "@tanstack/react-table" { interface ColumnDefBase { cellRender: CellRenderComponent | undefined; headerRender: HeaderRenderComponent | undefined; sortRender: SortRenderComponent | undefined; filterRender: FilterRenderComponent | undefined; headerClass: HeaderClassInterface[]; cellClass: CellClassInterface[]; name: string; icon?: ReactNode; accessorKey: string; cellRenderProps?: unknown; headerRenderProps?: unknown; filterRenderProps?: unknown; sortRenderProps?: unknown; headerClassProps?: unknown; cellClassProps?: unknown; props?: unknown; expandable?: boolean; expandedShift?: number; enableDraggable?: boolean; tooltip?: ColumnTooltipSettings | boolean; className?: ((context: CellContext$1) => string | undefined) | string; } interface TableMeta { renderers: TableRenderers; pageSizes?: number[]; totalRows?: number; } } export { CellRenderLink, CellRenderTooltip, CellRenderWrapper, HeaderRenderWrapper, Table, useVisibleCell }; export type { CellClassFn, CellClassInterface, CellContext, CellRenderComponent, CellRenderLinkProps, CellRenderMap, CellRenderProps, CellRenderTooltipProps, CellRenderWrapperProps, ColumnDef, ColumnFilter, ColumnSizingSettings, ColumnSort, ColumnTooltipSettings, ColumnsExpandState, ColumnsFilterState, ColumnsOrderState, ColumnsSizingState, ColumnsSortingState, ColumnsVisibleState, DefaultFilterRenderProps, DefaultGanttData, DefaultHeaderRenderProps, DefaultRow, DefaultSortRenderProps, DefaultTableCellRenderProps, DragRowHandler, FilterFn, FilterKey, FilterRenderComponent, FilterRenderMap, FilterRenderProps, GanttArrowInfo, GanttArrowStyle, GanttArrowStyleGetter, GanttDate, GanttInfo, GanttProps, GanttRowInfo, GanttTaskProps, GanttTooltipProps, GanttTypeShapes, GanttViewType, HeaderClassFn, HeaderClassInterface, HeaderContext, HeaderInterface, HeaderRenderComponent, HeaderRenderMap, HeaderRenderProps, HeaderRenderWrapperProps, KeyofDeep, PaginationState, RowInterface, RowModel, SortFn, SortRenderComponent, SortRenderMap, SortRenderProps, SortingKey, TableCellClassKey, TableCellClasses, TableCellRenderKey, TableCellRenders, TableCellRendersProps, TableColumn, TableColumnsSettings, TableDefaultColumnOptions, TableEmptyProps, TableFilterProps, TableFilterRenderKey, TableFilterRenders, TableFilterRendersProps, TableHeaderClassKey, TableHeaderClasses, TableHeaderRenderKey, TableHeaderRenders, TableHeaderRendersProps, TableInterface, TableLoaderProps, TablePaginationProps, TableProps, TableRenderers, TableSortRenderKey, TableSortRenders, TableSortRendersProps, TableTypesGetter };