import { LitElement } from 'lit'; export interface TableColumn { key: string; label: string; sortable?: boolean; width?: string; minWidth?: string; resizable?: boolean; selectable?: boolean; /** Sticky column position */ sticky?: 'left' | 'right'; /** Custom cell renderer */ render?: (value: unknown, row: Record) => unknown; } export interface TablePaginationConfig { enabled: boolean; page: number; pageSize: number; total: number; pageSizeOptions?: number[]; } /** * Table component with sorting and row selection support * * @slot - Default slot for custom table content * * @fires sort - Dispatched when column sort is requested * @fires row-select - Dispatched when row selection changes * * @csspart table - The table element * @csspart header - The table header * @csspart body - The table body * @csspart row - Table row * @csspart cell - Table cell */ export declare class UITable extends LitElement { static styles: import("lit").CSSResult; columns: TableColumn[]; data: any[]; striped: boolean; bordered: boolean; hoverable: boolean; sortBy: string; sortDirection: 'asc' | 'desc' | 'none'; fixedHeader: boolean; loading: boolean; emptyMessage: string; selectable: boolean; selectionMode: 'single' | 'multiple'; selectedRows: any[]; ariaLabel: string; ariaDescribedby: string; /** Enable column resizing */ resizable: boolean; /** Enable row expansion */ expandable: boolean; /** Expansion content renderer (key of data to display, or set expandRenderer) */ expandKey: string; /** Pagination config */ pagination: TablePaginationConfig | null; /** Expanded row indices */ private _expandedRows; /** Column widths map (for resizing) */ private _columnWidths; /** Currently resizing state */ private _resizing; /** Custom expand renderer */ expandRenderer: ((row: Record, index: number) => unknown) | null; private focusedCell; private tableId; private descriptionId; connectedCallback(): void; disconnectedCallback(): void; private _handleResizeStart; private _handleResizeMove; private _handleResizeEnd; private _toggleRow; private get _displayData(); private _handlePageChange; private _handlePageSizeChange; private handleKeyDown; private handleSort; private handleSelectAll; private handleRowSelect; private _dispatchSelectionChange; private _isRowSelected; private _areAllRowsSelected; render(): import("lit-html").TemplateResult<1>; private _renderPagination; } /** * Pagination component */ export declare class UIPagination extends LitElement { static styles: import("lit").CSSResult; page: number; total: number; pageSize: number; maxButtons: number; showInfo: boolean; get totalPages(): number; private handlePageChange; private getPageNumbers; render(): import("lit-html").TemplateResult<1>; } declare global { interface HTMLElementTagNameMap { 'ui-table': UITable; 'ui-table-pagination': UIPagination; } } //# sourceMappingURL=table.d.ts.map