import type { Table } from '..';
import { type TableHeader } from '../components/header';
import { TableColumnSortDirection, type TableRecord, TableRowSelectionState } from '../types';
import { type MenuButton } from '../../menu-button';
import { type TableCell } from '../components/cell';
import type { TableGroupHeaderView } from '../../table-column/base/group-header-view';
import { TableCellView } from '../../table-column/base/cell-view';
import { type TableRow } from '../components/row';
import { Anchor } from '../../anchor';
import type { IconSeverity } from '../../icon-base/types';
/**
 * Summary information about a column that is sorted in the table for use in the `TablePageObject`.
 */
export interface SortedColumn {
    columnId?: string;
    sortDirection: TableColumnSortDirection;
}
/**
 * Page object for the `nimble-table` component to provide consistent ways
 * of querying and interacting with the component during tests.
 */
export declare class TablePageObject<T extends TableRecord> {
    private readonly tableElement;
    constructor(tableElement: Table<T>);
    getRenderedHeaderCount(): number;
    getRenderedCellCountForRow(rowIndex: number): number;
    getHeaderContent(columnIndex: number): Node | undefined;
    getHeaderElement(columnIndex: number): TableHeader;
    getHeaderTitle(columnIndex: number): string;
    getHeaderTextContent(columnIndex: number): string;
    dispatchEventToHeader(columnIndex: number, event: Event): boolean | undefined;
    getHeaderRenderedWidth(columnIndex: number): number;
    clickColumnHeader(columnIndex: number, shiftKeyDown?: boolean): Promise<void>;
    getRenderedRowCount(): number;
    getRenderedGroupRowCount(): number;
    getAllGroupRowsExpandedState(): boolean[];
    getAllDataRowsExpandedState(): boolean[];
    getRenderedCellView(rowIndex: number, columnIndex: number): TableCellView;
    getRenderedCellViewById(recordId: string, columnId: string): TableCellView;
    getRenderedCellTextContent(rowIndex: number, columnIndex: number): string;
    getRenderedCellAnchor(rowIndex: number, columnIndex: number): Anchor;
    getRenderedMappingColumnCellIconTagName(rowIndex: number, columnIndex: number): string;
    getRenderedMappingColumnCellIconSeverity(rowIndex: number, columnIndex: number): IconSeverity;
    getRenderedGroupHeaderTextContent(groupRowIndex: number): string;
    getAllRenderedGroupHeaderTextContent(): string[];
    getCellTitle(rowIndex: number, columnIndex: number): string;
    dispatchEventToCell(rowIndex: number, columnIndex: number, event: Event): boolean | undefined;
    getGroupHeaderTitle(groupRowIndex: number): string;
    dispatchEventToGroupHeader(groupRowIndex: number, event: Event): boolean | undefined;
    getRecordId(rowIndex: number): string | undefined;
    getRowWidth(): number;
    sizeTableToGivenRowWidth(rowWidth: number, table: Table<T>): Promise<void>;
    getCellRenderedWidth(rowIndex: number, columnIndex: number): number;
    getTotalCellRenderedWidth(): number;
    scrollToFirstRowAsync(): Promise<void>;
    scrollToLastRowAsync(): Promise<void>;
    getCellActionMenu(rowIndex: number, columnIndex: number): MenuButton | null;
    clickCellActionMenu(rowIndex: number, columnIndex: number): Promise<void>;
    isCellActionMenuVisible(rowIndex: number, columnIndex: number): boolean;
    setRowHoverState(rowIndex: number, hover: boolean): void;
    clickGroupRow(groupRowIndex: number): Promise<void>;
    clickRow(rowIndex: number, modifiers?: {
        shiftKey?: boolean;
        ctrlKey?: boolean;
    }): Promise<void>;
    getIsRowSelectable(rowIndex: number): boolean;
    getIsRowSelected(rowIndex: number): boolean;
    toggleGroupRowExpandedState(groupRowIndex: number): void;
    clickCollapseAllButton(): void;
    clickDataRowExpandCollapseButton(rowIndex: number): void;
    isCollapseAllButtonVisible(): boolean;
    isCollapseAllButtonSpaceReserved(): boolean;
    isDataRowExpandCollapseButtonVisible(rowIndex: number): boolean;
    isDataRowLoadingSpinnerVisible(rowIndex: number): boolean;
    isTableSelectionCheckboxVisible(): boolean;
    getTableSelectionState(): TableRowSelectionState;
    clickTableSelectionCheckbox(): void;
    isRowSelectionCheckboxVisible(rowIndex: number): boolean;
    getRowSelectionState(rowIndex: number): TableRowSelectionState;
    clickRowSelectionCheckbox(rowIndex: number, shiftKey?: boolean): void;
    getGroupRowSelectionState(groupRowIndex: number): TableRowSelectionState;
    clickGroupRowSelectionCheckbox(groupRowIndex: number, shiftKey?: boolean): void;
    /**
     * @param columnIndex The index of the column to the left of the divider to press.
     */
    pressRightColumnDivider(columnIndex: number): void;
    /**
     * @param columnIndex The index of the column to the left of the divider to release.
     */
    releaseRightColumnDivider(columnIndex: number): void;
    /**
     * @param columnIndex The index of the column to the left of a divider being dragged. Thus, this
     * cannot be given a value representing the last visible column index.
     * @param deltas The series of mouse movements in the x-direction while sizing a column.
     */
    dragSizeColumnByRightDivider(columnIndex: number, deltas: readonly number[]): void;
    /**
     * @param columnIndex The index of the column to the right of a divider being dragged. Thus, this
     * value must be greater than 0 and less than the total number of visible columns.
     * @param deltas The series of mouse movements in the x-direction while sizing a column.
     */
    dragSizeColumnByLeftDivider(columnIndex: number, deltas: readonly number[]): void;
    /**
     * @param columnIndex The index of the column whose right divider we're checking.
     */
    columnRightDividerHasActiveStyling(columnIndex: number): boolean;
    isVerticalScrollbarVisible(): boolean;
    isHorizontalScrollbarVisible(): boolean;
    getSortedColumns(): SortedColumn[];
    getGroupedColumns(): string[];
    getChildRowCountForGroup(groupRowIndex: number): number;
    /** @internal */
    isRowHoverStylingEnabled(): boolean;
    /** @internal */
    getGroupRowHeaderView(groupRowIndex: number): TableGroupHeaderView;
    /** @internal */
    getRow(rowIndex: number): TableRow;
    /** @internal */
    getCell(rowIndex: number, columnIndex: number): TableCell;
    private getRowById;
    private getCellById;
    private getCollapseAllButton;
    private getExpandCollapseButtonForRow;
    private getSelectionCheckboxForRow;
    private getSelectionCheckboxForGroupRow;
    private getSelectionCheckboxForTable;
    private isCheckboxVisible;
    private getSelectionStateOfCheckbox;
    private getGroupRow;
    private getHeaderContentElement;
    private getRenderedMappingColumnIconOrSpinner;
    private getColumnDivider;
    private pressColumnDivider;
    private releaseColumnDivider;
    private dragSizeColumnByDivider;
    private readonly isSlotElement;
}
