import type { AggregationType, CellAddress, CellRange, ColumnsDefine, DropDownMenuEventInfo, FieldData, FieldDef, FieldFormat, FieldKeyDef, FilterRules, IPagination, ListTableAPI, ListTableConstructorOptions, MaybePromiseOrUndefined, SortState } from './ts-types';
import { HierarchyState } from './ts-types';
import { BaseTable } from './core';
import type { ListTableProtected } from './ts-types/base-table';
import type { IEditor } from '@visactor/vtable-editors';
import type { ListTreeStickCellPlugin } from './plugins/list-tree-stick-cell';
export declare class ListTable extends BaseTable implements ListTableAPI {
    internalProps: ListTableProtected;
    options: ListTableConstructorOptions;
    showHeader: boolean;
    listTreeStickCellPlugin?: ListTreeStickCellPlugin;
    constructor(options: ListTableConstructorOptions);
    constructor(container: HTMLElement, options: ListTableConstructorOptions);
    isListTable(): true;
    isPivotTable(): false;
    isPivotChart(): false;
    get sortState(): SortState | SortState[];
    get records(): any[];
    get recordsCount(): number;
    updateColumns(columns: ColumnsDefine): void;
    get columns(): ColumnsDefine;
    get header(): ColumnsDefine;
    set header(header: ColumnsDefine);
    get transpose(): boolean;
    set transpose(transpose: boolean);
    getCellValue(col: number, row: number, skipCustomMerge?: boolean): FieldData;
    getCellOriginValue(col: number, row: number): FieldData;
    getCellRawValue(col: number, row: number): FieldData;
    getRecordShowIndexByCell(col: number, row: number): number;
    getRecordIndexByCell(col: number, row: number): number | number[];
    getTableIndexByRecordIndex(recordIndex: number | number[]): number;
    getTableIndexByField(field: FieldDef): number;
    getCellAddrByFieldRecord(field: FieldDef, recordIndex: number): CellAddress;
    getCellOriginRecord(col: number, row: number): MaybePromiseOrUndefined;
    getCellRawRecord(col: number, row: number): MaybePromiseOrUndefined;
    _canResizeColumn(col: number, row: number): boolean;
    updateOption(options: ListTableConstructorOptions): Promise<unknown>;
    updatePagination(pagination: IPagination): void;
    refreshHeader(): void;
    refreshRowColCount(): void;
    getFieldData(field: FieldDef | FieldFormat | undefined, col: number, row: number): FieldData;
    getRawFieldData(field: FieldDef | FieldFormat | undefined, col: number, row: number): FieldData;
    _moveHeaderPosition(source: CellAddress, target: CellAddress): {
        sourceIndex: number;
        targetIndex: number;
        sourceSize: number;
        targetSize: number;
        moveType: "row" | "column";
    };
    changeRecordOrder(sourceIndex: number, targetIndex: number): void;
    getCellAddress(findTargetRecord: any | ((record: any) => boolean), field: FieldDef): CellAddress;
    getCellRangeByField(field: FieldDef, index: number): CellRange | null;
    getHierarchyState(col: number, row: number): HierarchyState;
    toggleHierarchyState(col: number, row: number, recalculateColWidths?: boolean): void;
    setLoadingHierarchyState(col: number, row: number): void;
    _refreshHierarchyState(col: number, row: number, recalculateColWidths?: boolean): void;
    _hasHierarchyTreeHeader(): boolean;
    getMenuInfo(col: number, row: number, type: string): DropDownMenuEventInfo;
    _getSortFuncFromHeaderOption(columns: ColumnsDefine | undefined, field: FieldDef, fieldKey?: FieldKeyDef): SortState['orderFn'] | undefined;
    updateSortState(sortState: SortState[] | SortState | null, executeSort?: boolean): void;
    updateFilterRules(filterRules: FilterRules): void;
    getCheckboxState(field?: string | number): any[];
    getCellCheckboxState(col: number, row: number): boolean | "indeterminate";
    getRadioState(field?: string | number): number | boolean | Record<string | number, number | boolean | Record<number, number>>;
    getCellRadioState(col: number, row: number): boolean | number;
    setCellCheckboxState(col: number, row: number, checked: boolean | 'indeterminate'): void;
    setCellRadioState(col: number, row: number, index?: number): void;
    getSwitchState(field?: string | number): any[];
    getCellSwitchState(col: number, row: number): boolean | "indeterminate";
    setCellSwitchState(col: number, row: number, checked: boolean | 'indeterminate'): void;
    setRecords(records: Array<any>, option?: {
        sortState?: SortState | SortState[] | null;
    }): void;
    setRecordChildren(records: any[], col: number, row: number, recalculateColWidths?: boolean): void;
    startEditCell(col?: number, row?: number, value?: string | number): void;
    completeEditCell(): void;
    getEditor(col: number, row: number): IEditor<any, any>;
    isHasEditorDefine(col: number, row: number): boolean;
    changeCellValue(col: number, row: number, value: string | number | null, workOnEditableCell?: boolean): void;
    changeCellValues(startCol: number, startRow: number, values: (string | number)[][], workOnEditableCell?: boolean): void;
    addRecord(record: any, recordIndex?: number | number[]): void;
    addRecords(records: any[], recordIndex?: number | number[]): void;
    deleteRecords(recordIndexs: number[] | number[][]): void;
    updateRecords(records: any[], recordIndexs: (number | number[])[]): void;
    _hasCustomRenderOrLayout(): boolean;
    getAggregateValuesByField(field: string | number): {
        col: number;
        aggregateValue: {
            aggregationType: AggregationType;
            value: number | string;
        }[];
    }[];
    isAggregation(col: number, row: number): boolean;
    getGroupTitleLevel(col: number, row: number): number | undefined;
    getBodyRowIndexByRecordIndex(index: number | number[]): number;
    _parseColumnWidthConfig(columnWidthConfig: {
        key: string;
        width: number;
    }[]): void;
    release(): void;
}
