/** * ExceLikeTable TypeScript Definitions * Version: 2.3.3 */ declare class ExceLikeTable { constructor(container: string | HTMLElement, options?: ExceLikeTableOptions); setData(data: any[]): void; updateData(data: any[]): void; getFilters(): Record; setFilters(filters: Record): void; clearFilters(): void; clearAllFilters(): void; setFontSize(size: FontSize): void; setCellPadding(padding: CellPadding): void; saveSettings(): Promise; loadSettings(): Promise; clearSettings(): Promise; showConditionalFormatting(): void; destroy(): void; } interface ExceLikeTableOptions { /** Table data array */ data?: any[]; /** Column definitions */ columns?: ExceLikeTableColumn[]; /** Unique row identifier (default: 'id') */ rowKey?: string; /** Pagination config or false to disable (default: {pageSize: 10, showSizeChanger: true}) */ pagination?: PaginationOptions | false; /** Show table borders (default: true) */ bordered?: boolean; /** Table size (default: 'middle') */ size?: 'small' | 'middle' | 'large'; /** Show loading overlay */ loading?: boolean; /** Unique table ID for settings storage (default: 'excelike-table') */ tableId?: string; /** Enable settings persistence (default: true) */ persistSettings?: boolean; /** Custom storage adapter */ storageAdapter?: TableStorageAdapter; } interface PaginationOptions { pageSize?: number; showSizeChanger?: boolean; showTotal?: (total: number, range: [number, number]) => string; current?: number; } interface ExceLikeTableColumn { key: string; title: string; dataIndex: string; width?: number; sortable?: boolean; filterable?: boolean; filterType?: 'text' | 'date-hierarchy' | 'range'; render?: (value: any, record: any) => string; onFilter?: (value: any, record: any) => boolean; sorter?: (a: any, b: any) => number; pinned?: boolean; hidden?: boolean; } interface TableStorageAdapter { save(key: string, settings: any): Promise; load(key: string): Promise; remove(key: string): Promise; isAvailable(): boolean; } declare namespace ColumnHelpers { function text(key: string, title: string, options?: any): ExceLikeTableColumn; function number(key: string, title: string, options?: any): ExceLikeTableColumn; function date(key: string, title: string, options?: any): ExceLikeTableColumn; function status(key: string, title: string, statusColors?: Record, options?: any): ExceLikeTableColumn; function actions(title: string, actions: Array<{key: string, label: string}>, options?: any): ExceLikeTableColumn; } type FontSize = 'smallest' | 'small' | 'medium' | 'large' | 'largest'; type CellPadding = 'narrow' | 'standard' | 'wide'; export default ExceLikeTable; export { ColumnHelpers, TABLE_CONFIG, ExceLikeTableOptions, ExceLikeTableColumn, TableStorageAdapter };