import { DataTableConfig } from './types';
export type { CellRenderer, ColumnDef, DataTableConfig, PaginationConfig, SortDirection, SortState, } from './types';
export declare class DataTable {
    private readonly container;
    private readonly columns;
    private readonly config;
    private rows;
    private sortState;
    private currentPage;
    private wrapperEl;
    private tableEl;
    private liveRegion;
    private readonly tableId;
    private readonly captionId;
    private focusedRow;
    private focusedCol;
    private readonly selectedKeys;
    private selectAllEl;
    constructor(config: DataTableConfig);
    /** Replace all table data and re-render */
    setData(rows: unknown[][]): void;
    /** Append rows to existing data and re-render */
    appendRows(rows: unknown[][]): void;
    /** Show or hide a loading overlay on the table */
    setLoading(loading: boolean): void;
    /** Clear all data from the table */
    clear(): void;
    /** Get the current number of rows */
    getRowCount(): number;
    /** Whether row selection is enabled. */
    private isSelectable;
    /** Get the selected row indices (into the data array), ascending. */
    getSelectedIndices(): number[];
    /** Get the selected row tuples, in data order. */
    getSelectedRows(): unknown[][];
    /** Replace the current selection with the given row indices and re-render. */
    setSelectedRows(indices: number[]): void;
    /** Clear the current selection and re-render. */
    clearSelection(): void;
    /** Notify the consumer of the current selection. */
    private emitSelectionChange;
    /** Sync the header select-all checkbox to the current selection. */
    private updateSelectAllState;
    /** Build a checkbox input for the selection column. */
    private buildCheckbox;
    /** Select or clear every row, updating the DOM in place to keep focus. */
    private toggleAll;
    /** Toggle one row (by data index), updating the DOM in place to keep focus. */
    private toggleRow;
    /** Remove the table from the DOM and clean up */
    destroy(): void;
    /** Announce an update to screen readers */
    private announceUpdate;
    /** Get the currently visible page of rows */
    private getPageRows;
    /** Get total page count */
    private getTotalPages;
    /** Handle column header click for sorting */
    private handleSort;
    /** Get sorted rows based on current sort state */
    private getSortedRows;
    /** Build the sort icon HTML for a column header */
    private buildSortIcon;
    /** Get the sort direction label for ARIA */
    private getSortLabel;
    /** Handle keyboard navigation within the table */
    private handleKeyDown;
    /** Focus a specific cell */
    private focusCell;
    /** Render the full table into the container */
    private render;
    /** Build the pagination controls element */
    private buildPagination;
    /** Build the export buttons bar */
    private buildExportBar;
}
//# sourceMappingURL=index.d.ts.map