import type { Address, CellFormulaValue, CellValue, Style, TableColumnProperties, TableStyleProperties } from "@excel/types";
import type { Worksheet } from "@excel/worksheet";
interface TableModel {
    ref: string;
    name: string;
    displayName?: string;
    columns: TableColumnProperties[];
    rows: CellValue[][];
    headerRow?: boolean;
    totalsRow?: boolean;
    qualifyImplicitStructuredReferences?: boolean;
    style?: TableStyleProperties;
    tl?: Address;
    autoFilterRef?: string;
    tableRef?: string;
}
declare class Column {
    table: Table;
    column: TableColumnProperties;
    index: number;
    constructor(table: Table, column: TableColumnProperties, index: number);
    private _set;
    get name(): string;
    set name(value: string);
    get filterButton(): boolean | undefined;
    set filterButton(value: boolean | undefined);
    get style(): Partial<Style> | undefined;
    set style(value: Partial<Style> | undefined);
    get totalsRowLabel(): string | undefined;
    set totalsRowLabel(value: string | undefined);
    get totalsRowFunction(): TableColumnProperties["totalsRowFunction"];
    set totalsRowFunction(value: TableColumnProperties["totalsRowFunction"]);
    get totalsRowResult(): CellValue;
    set totalsRowResult(value: CellFormulaValue["result"]);
    get totalsRowFormula(): string | undefined;
    set totalsRowFormula(value: string | undefined);
}
declare class Table {
    worksheet: Worksheet;
    table: TableModel;
    private _cache?;
    constructor(worksheet: Worksheet, table?: TableModel);
    getFormula(column: TableColumnProperties): string | null;
    get width(): number;
    get height(): number;
    get filterHeight(): number;
    get tableHeight(): number;
    validate(): void;
    store(): void;
    load(worksheet: Worksheet): void;
    get model(): TableModel;
    set model(value: TableModel);
    cacheState(): void;
    commit(): void;
    addRow(values: CellValue[], rowNumber?: number, options?: {
        commit?: boolean;
    }): void;
    removeRows(rowIndex: number, count?: number, options?: {
        commit?: boolean;
    }): void;
    getColumn(colIndex: number): Column;
    addColumn(column: TableColumnProperties, values: CellValue[], colIndex?: number): void;
    removeColumns(colIndex: number, count?: number): void;
    private _assign;
    get ref(): string;
    set ref(value: string);
    get name(): string;
    set name(value: string);
    get displayName(): string;
    set displayName(value: string);
    get headerRow(): boolean | undefined;
    set headerRow(value: boolean | undefined);
    get totalsRow(): boolean | undefined;
    set totalsRow(value: boolean | undefined);
    get theme(): TableStyleProperties["theme"];
    set theme(value: TableStyleProperties["theme"]);
    get showFirstColumn(): boolean | undefined;
    set showFirstColumn(value: boolean | undefined);
    get showLastColumn(): boolean | undefined;
    set showLastColumn(value: boolean | undefined);
    get showRowStripes(): boolean | undefined;
    set showRowStripes(value: boolean | undefined);
    get showColumnStripes(): boolean | undefined;
    set showColumnStripes(value: boolean | undefined);
}
export { Table, type TableModel };
