import { Group, type LineStyleProps } from '@antv/g';
import type { DataCell } from '../cell';
import type { S2BaseFrozenOptions, SplitLine } from '../common';
import type { FrozenGroups } from '../common/interface/frozen';
import type { SimpleBBox } from '../engine';
import type { Indexes, PanelIndexes } from '../utils/indexes';
import { BaseFacet } from './base-facet';
/**
 * Defines the row freeze  abstract standard interface
 */
export declare abstract class FrozenFacet extends BaseFacet {
    rowOffsets: number[];
    frozenGroups: FrozenGroups;
    frozenGroupAreas: {
        frozenCol: {
            width: number;
            x: number;
            range: number[];
        };
        frozenTrailingCol: {
            width: number;
            x: number;
            range: number[];
        };
        frozenRow: {
            height: number;
            y: number;
            range: number[];
        };
        frozenTrailingRow: {
            height: number;
            y: number;
            range: number[];
        };
    };
    protected validFrozenOptions: Required<S2BaseFrozenOptions>;
    panelScrollGroupIndexes: Indexes;
    protected initPanelGroups(): void;
    /**
     * 获取冻结数量结果，主要是针对 col top level 的结果
     */
    getFrozenOptions(): Required<S2BaseFrozenOptions>;
    calculateFrozenGroupInfo(): void;
    protected getFinalViewport(): SimpleBBox;
    calculateXYIndexes(scrollX: number, scrollY: number): PanelIndexes;
    addDataCell: (cell: DataCell) => void;
    addFrozenCell: (colIndex: number, rowIndex: number, group: Group) => void;
    protected updateFrozenGroupGrid(): void;
    updatePanelScrollGroup(): void;
    protected translateRelatedGroups(scrollX: number, scrollY: number, hRowScroll: number): void;
    protected translateFrozenGroups: () => void;
    protected renderRowResizeArea(): void;
    protected renderFrozenGroupSplitLine: (scrollX: number, scrollY: number) => void;
    protected getFrozenColSplitLineSize(): {
        y: number;
        height: number;
    };
    protected renderFrozenColSplitLine(splitLineGroup: Group, splitLine: SplitLine, verticalBorderStyle: Partial<LineStyleProps>, scrollX: number): void;
    protected renderFrozenTrailingColSplitLine(splitLineGroup: Group, splitLine: SplitLine, verticalBorderStyle: Partial<LineStyleProps>, scrollX: number): void;
    protected getFrozenRowSplitLineSize(): {
        x: number;
        width: number;
    };
    protected renderFrozenRowSplitLine(splitLineGroup: Group, splitLine: SplitLine, horizontalBorderStyle: Partial<LineStyleProps>, scrollY: number): void;
    protected renderFrozenTrailingRowSplitLine(splitLineGroup: Group, splitLine: SplitLine, horizontalBorderStyle: Partial<LineStyleProps>, scrollY: number): void;
    render(): void;
    protected getCenterFrameScrollX(scrollX: number): number;
    protected renderFrozenPanelCornerGroup: () => void;
    getTotalHeightForRange: (start: number, end: number) => number;
    protected getDefaultCellHeight(): number;
    protected getShadowFill: (angle: number) => string;
    protected clip(): void;
}
