export declare class TableRenderer { private table; private template; private component; private dataMap; private rowMap; IdColumn: string; constructor(table: HTMLTableElement, template: HTMLTemplateElement, idColumn: string, component: HTMLElement); render(data: Record[]): void; private clearRows; private renderRow; private populateRow; private attachEventHandlers; update(data: Record): void; } export declare class SortChangeEvent extends CustomEvent { constructor(sortColumns: SortColumn[]); } type SortDirection = 'asc' | 'desc'; export type SortColumn = { column: string; direction: SortDirection; }; export declare class TableSorter { private table; private sortColumns; private component; constructor(table: HTMLTableElement, component: HTMLElement); private setupListeners; private toggle; private emit; private updateSortIndicators; getSortColumns(): SortColumn[]; clear(): void; } declare global { interface HTMLTableElementEventMap extends HTMLElementEventMap { 'sortchange': SortChangeEvent; } interface HTMLTableElement { addEventListener(type: K, listener: (this: HTMLTableElement, ev: HTMLTableElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; } } export {};