import { default as CxButton } from '../../../atoms/src/components/button/button.ts';
import { default as CxSpace } from '../../../atoms/src/components/space/space.ts';
import { default as CxTable } from '../../../atoms/src/components/table/table.ts';
import { default as CortexElement } from '../../../base/src/cortex-element.ts';
import { Options, OptionsColumns } from '../../../types/src/table';

/**
 * @summary Dashboard table block: wraps `cx-table` with column helpers (e.g. epoch formatters), and optional load-more control that notifies the host via event.
 *
 * @event {{ paginationSize?: number }} cx-dashboard-table-load-more - Fired when the user activates load more; the container should fetch and update `data`.
 */
export default class CxDashboardTable extends CortexElement {
    #private;
    static readonly styles: import('lit').CSSResult[];
    static readonly dependencies: {
        'cx-button': typeof CxButton;
        'cx-space': typeof CxSpace;
        'cx-table': typeof CxTable;
    };
    data: Options['data'];
    columns: OptionsColumns['columns'];
    loading: boolean;
    /** Tabulator layout mode passed to `cx-table`. */
    layout: NonNullable<OptionsColumns['layout']>;
    /** Row height in px for `cx-table`. */
    rowHeight: number;
    pagination: boolean;
    paginationSize: number | undefined;
    canSearch: boolean;
    searchFields: string[];
    /** Sets CSS `--table-height` on `cx-table` when defined. */
    tableHeight?: string;
    /** Shows the load-more button; clicks emit `cx-dashboard-table-load-more`. */
    showLoadMore: boolean;
    loadMoreLabel: string;
    private transformedColumns;
    handleColumnsChange(): void;
    handleLoadMoreClick(): void;
    render(): import('lit').TemplateResult<1>;
}
declare global {
    interface HTMLElementTagNameMap {
        'cx-dashboard-table': CxDashboardTable;
    }
}
