import type { IEventDetail } from '@breadstone/mosaik-elements';
/**
 * Represents the event detail for table column sort changed events.
 *
 * @public
 */
export interface ITableSortChangedEventDetail extends IEventDetail {
    /**
     * The sort key.
     */
    readonly sortKey?: string;
    /**
     * The column being sorted.
     */
    readonly column?: string;
    /**
     * The sort direction.
     */
    readonly direction?: 'asc' | 'desc' | 'none';
    /**
     * The sort direction (alias).
     */
    readonly sortDirection?: 'asc' | 'desc' | 'none';
}
/**
 * Event fired when table sort changes.
 *
 * @public
 */
export type TableSortChangedEvent = CustomEvent<ITableSortChangedEventDetail>;
/**
 * Represents the event detail for table columns changed events.
 *
 * @public
 */
export interface ITableColumnsChangedEventDetail extends IEventDetail {
    /**
     * The visible columns.
     */
    readonly columns: string | ReadonlyArray<string>;
}
/**
 * Event fired when table columns change.
 *
 * @public
 */
export type TableColumnsChangedEvent = CustomEvent<ITableColumnsChangedEventDetail>;
declare global {
    interface HTMLElementEventMap {
        tableSortChanged: TableSortChangedEvent;
        tableColumnsChanged: TableColumnsChangedEvent;
        columnsChanged: TableColumnsChangedEvent;
    }
}
//# sourceMappingURL=TableEvents.d.ts.map