export interface ColumnDefinition { /** * With specifier, like "10px", "10%" or "*" */ width?: string; sortOrder?: 'ascending' | 'descending'; title: string; property: string; } export declare class Table extends HTMLElement { private columns; private table; private tBody; private pages; constructor(columns: ColumnDefinition[]); pageLoader: (pageNumber: number) => Promise[]>; template?: DocumentFragment; connectedCallback(): void; setData(data: unknown[]): void; addRow(x: unknown): void; render(data: unknown[]): void; page(pageNumber: number): void; private extractColumnsFromTemplate; /** * Should only be done initially. */ private renderColumns; } /** * Defines the columns for the table. * @element columns * @slot - Contains child `` elements. */ export declare class ColumnsElement extends HTMLElement { private observer; constructor(); connectedCallback(): void; disconnectedCallback(): void; get columns(): ColumnElement[]; set columns(value: ColumnElement[]); private updateColumns; } /** * A single column definition for a table. * * @element column * @attribute {string} name - Maps to a property in the data array. * @attribute {string} [mutators] - Optional transformations to apply to the data. */ export declare class ColumnElement extends HTMLElement { static get observedAttributes(): string[]; get name(): string | null; set name(value: string | null); get transformer(): string | null; set transformer(value: string | null); get displayName(): string; set displayName(value: string); attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void; }