import type { IStage, IRect, IRectGraphicAttribute } from './../vrender';
import type { CellRange, CellSubLocation } from '../ts-types';
import { type CellAddress, type SortOrder } from '../ts-types';
import type { Group } from './graphic/group';
import type { Icon } from './graphic/icon';
import { TableComponent } from './component/table-component';
import { SceneProxy } from './group-creater/progress/proxy';
import type { BaseTableAPI } from '../ts-types/base-table';
export type MergeMap = Map<string, {
    cellWidth: number;
    cellHeight: number;
}>;
export declare class Scenegraph {
    proxy: SceneProxy;
    tableGroup: Group;
    colHeaderGroup: Group;
    cornerHeaderGroup: Group;
    rowHeaderGroup: Group;
    bodyGroup: Group;
    rightFrozenGroup: Group;
    bottomFrozenGroup: Group;
    rightTopCornerGroup: Group;
    leftBottomCornerGroup: Group;
    rightBottomCornerGroup: Group;
    componentGroup: Group;
    selectedRangeComponents: Map<string, {
        rect: IRect;
        fillhandle?: IRect;
        role: CellSubLocation;
    }>;
    selectingRangeComponents: Map<string, {
        rect: IRect;
        fillhandle?: IRect;
        role: CellSubLocation;
    }>;
    customSelectedRangeComponents: Map<string, {
        rect: IRect;
        role: CellSubLocation;
    }>;
    lastSelectId: string;
    component: TableComponent;
    stage: IStage;
    table: BaseTableAPI;
    isPivot: boolean;
    hasFrozen: boolean;
    frozenColCount: number;
    frozenRowCount: number;
    clear: boolean;
    mergeMap: MergeMap;
    _dealAutoFillHeightOriginRowsHeight: number;
    _needUpdateContainer: boolean;
    brushingChartInstance: any;
    brushingChartInstanceCellPos: {
        col: number;
        row: number;
    };
    chartInstanceListColumnByColumnDirection: Record<number, Record<number, any>>;
    chartInstanceListRowByRowDirection: Record<number, Record<number, any>>;
    delayRunDimensionHoverTimerForColumnDirection: any[];
    delayRunDimensionHoverTimerForRowDirection: any[];
    delayRunDimensionHoverTimerForViewRange: any[];
    disabledTooltipToAllChartInstances: boolean;
    constructor(table: BaseTableAPI);
    get width(): number;
    get height(): number;
    get x(): number;
    get y(): number;
    get bodyRowStart(): number;
    get bodyRowEnd(): number;
    get bodyColStart(): number;
    get bodyColEnd(): number;
    initSceneGraph(): void;
    canvasShowMenu(): void;
    clearCells(): void;
    updateStageBackground(): void;
    createComponent(): void;
    updateComponent(): void;
    createSceneGraph(skipRowHeightClear?: boolean): void;
    renderSceneGraph(): void;
    getCell(col: number, row: number, getShadow?: boolean): Group;
    highPerformanceGetCell(col: number, row: number, getShadow?: boolean): Group;
    getColGroup(col: number, isCornerOrColHeader?: boolean): Group;
    getColGroupInBottom(col: number, isCornerOrColHeader?: boolean): Group | undefined;
    getColGroupInLeftBottomCorner(col: number): Group | undefined;
    getColGroupInRightTopCorner(col: number): Group | undefined;
    getColGroupInRightBottomCorner(col: number): Group | undefined;
    getCellSize(col: number, row: number): {
        width: number;
        height: number;
    };
    updateNextFrame(): void;
    resetAllSelectComponent(): void;
    hideHoverIcon(col: number, row: number): void;
    showHoverIcon(col: number, row: number): void;
    hideClickIcon(col: number, row: number): void;
    showClickIcon(col: number, row: number): void;
    getIcon(col: number, row: number, x: number, y: number): Icon | undefined;
    setIconHoverStyle(icon: Icon, col: number, row: number, cellGroup: Group): void;
    updateSortIcon(options: {
        col: number;
        row: number;
        iconMark: Icon;
        order: SortOrder;
        oldSortCol: number;
        oldSortRow: number;
        oldIconMark: Icon | undefined;
    }): void;
    updateFrozenIcon(col: number, oldFrozenCol: number): void;
    updateHierarchyIcon(col: number, row: number): void;
    setIconNormalStyle(icon: Icon, col: number, row: number): void;
    residentHoverIcon(col: number, row: number): void;
    resetResidentHoverIcon(col: number, row: number): void;
    deactivateChart(col: number, row: number, forceRelease?: boolean): void;
    activateChart(col: number, row: number): any;
    removeInteractionBorder(col: number, row: number): void;
    createCellSelectBorder(start_Col: number, start_Row: number, end_Col: number, end_Row: number, selectRangeType: CellSubLocation, selectId: string, strokes?: boolean[]): void;
    moveSelectingRangeComponentsToSelectedRangeComponents(): void;
    deleteLastSelectedRangeComponents(): void;
    deleteAllSelectBorder(): void;
    updateCellSelectBorder(selectRange: CellRange & {
        skipBodyMerge?: boolean;
    }, extendSelectRange?: boolean): void;
    removeFillHandleFromSelectComponents(): void;
    recreateAllSelectRangeComponents(): void;
    updateColWidth(col: number, detaX: number, skipUpdateContainer?: boolean, skipTableWidthMap?: boolean): void;
    updateChartSizeForResizeColWidth(col: number): void;
    updateChartSizeForResizeRowHeight(row: number): void;
    updateChartState(datum: any, selectedDataMode: 'click' | 'brush' | 'multiple-select'): void;
    updateCheckboxCellState(col: number, row: number, checked: boolean | 'indeterminate'): void;
    updateHeaderCheckboxCellState(col: number, row: number, checked: boolean | 'indeterminate'): void;
    updateAutoColWidth(col: number): void;
    recalculateColWidths(): void;
    recalculateRowHeights(): void;
    resize(): void;
    updateTableSize(): void;
    updateRowHeight(row: number, detaY: number, skipTableHeightMap?: boolean): void;
    updateRowsHeight(rows: number[], detaYs: number[], skipTableHeightMap?: boolean): void;
    updateContainerWidth(col: number, detaX: number): void;
    _updateContainerHeight(row: number, detaY: number): void;
    updateContainerHeight(row: number, detaY: number): void;
    setColWidth(col: number, width: number): void;
    setRowHeight(row: number, height: number): void;
    setX(x: number, isEnd?: boolean): void;
    setY(y: number, isEnd?: boolean): void;
    setBodyAndRowHeaderY(y: number): void;
    setBodyAndColHeaderX(x: number): void;
    afterScenegraphCreated(): void;
    dealWidthMode(): void;
    dealHeightMode(): void;
    dealFrozen(): void;
    resetFrozen(): void;
    resetRowFrozen(): void;
    updateCellLayoutWidthCertainWidth(columnGroup: Group, detaRow: number, col: number): boolean;
    updateHeaderPosition(updateColStart: number, updateColEnd: number, updateRowStart: number, updateRowEnd: number, moveType: 'column' | 'row'): void;
    updateContainerAttrWidthAndX(): void;
    updateContainerAttrHeightAndY(): void;
    updateContainer(updateConfig?: {
        async?: boolean;
        needUpdateCellY?: boolean;
    }): void;
    updateContainerSync(needUpdateCellY?: boolean): void;
    updateCellContentWhileResize(col: number, row: number): void;
    createFrameBorder(): void;
    getResizeColAt(abstractX: number, abstractY: number, cellGroup?: Group): {
        col: number;
        row: number;
        x?: number;
        rightFrozen?: boolean;
    };
    getResizeRowAt(abstractX: number, abstractY: number, cellGroup?: Group): {
        col: number;
        row: number;
        y?: number;
        bottomFrozen?: boolean;
    };
    updateFrozen(): void;
    updateRowFrozen(): void;
    dealWidthRightFrozen(rightFrozenColCount: number): void;
    dealWidthBottomFrozen(bottomFrozenRowCount: number): void;
    updateBorderSizeAndPosition(): void;
    sortCell(): void;
    getCellOverflowText(col: number, row: number): string | null;
    updateDrill(visible: boolean, x: number, y: number, drillDown: boolean, drillUp: boolean): void;
    updateCellContent(col: number, row: number, forceFastUpdate?: boolean): Group;
    setPixelRatio(pixelRatio: number): void;
    updateRow(removeCells: CellAddress[], addCells: CellAddress[], updateCells?: CellAddress[], recalculateColWidths?: boolean, skipUpdateProxy?: boolean): void;
    updateCol(removeCells: CellAddress[], addCells: CellAddress[], updateCells?: CellAddress[]): void;
    updateCornerHeaderCells(): void;
    updateRowHeaderCells(): void;
    updateColumnHeaderCells(): void;
    getColumnGroupX(col: number): number;
    getCellGroupY(row: number): number;
    getCellGroupX(col: number): number;
    updateDomContainer(): void;
    setLoadingHierarchyState(col: number, row: number): void;
    temporarilyUpdateSelectRectStyle(rectAttribute: IRectGraphicAttribute): void;
    resetSelectRectStyle(): void;
}
