import type { Ref } from 'vue';
import type { Store } from './store';
import type { Table } from './table/defaults';
import type { TableColumnCtx } from './table-column/defaults';
import type { TableHeader } from './table-header/types';
declare class TableLayout {
    store: Store;
    table: Table;
    fit: boolean | undefined;
    showHeader: boolean | undefined;
    scrollX: Ref<boolean>;
    scrollY: Ref<boolean>;
    bodyWidth: Ref<null | number>;
    observers: TableHeader[];
    height: Ref<null | number>;
    gutterWidth: number;
    constructor(options: Record<string, any>);
    getFlattenColumns(): TableColumnCtx[];
    addObserver(observer: TableHeader): void;
    removeObserver(observer: TableHeader): void;
    notifyObservers(event: string): void;
    updateColumnsWidth(): void;
    setHeight(value: string | number, prop?: string): Promise<void>;
    setMaxHeight(value: string | number): void;
    parseHeight(height: number | string): string | number;
    updateTableContentHeight(): void;
    updateScrollY(): boolean;
}
export default TableLayout;
