import { CellRect, HLine, MergeRect, OutlineResult, OutlineType, VLine } from '../types/table';
export declare const borderConfig: {
    outer: {
        color: string;
        width: number;
    };
    inner: {
        color: string;
        width: number;
    };
    guide: {
        color: string;
        width: number;
    };
};
export declare const subThemeConfig: {
    'fixed-table': {
        label: string;
        color: string;
        background: string;
        labelBjColor: string;
    };
    'check-table': {
        label: string;
        color: string;
        background: string;
        labelBjColor: string;
    };
    'dynamic-table': {
        label: string;
        color: string;
        background: string;
        labelBjColor: string;
    };
    '2d-table': {
        label: string;
        color: string;
        background: string;
        labelBjColor: string;
    };
    'table-header': {
        label: string;
        color: string;
        background: string;
        labelBjColor: string;
    };
    'data-group': {
        label: string;
        color: string;
        background: string;
        labelBjColor: string;
    };
    'data-group-2d': {
        label: string;
        color: string;
        background: string;
        labelBjColor: string;
    };
};
export declare const getStyleByType: (type: OutlineType) => {
    strokeColor: string;
    backgroundColor: string;
    label: string;
    labelBjColor: string;
};
/** 横线裁剪 */
export declare function clipHLineByMerges(line: HLine, merges: MergeRect[]): HLine[];
/** 竖线裁剪 */
export declare function clipVLineByMerges(line: VLine, merges: MergeRect[]): VLine[];
export declare function createTableOutlineLayer(options: {
    cells: CellRect[];
    inset?: number;
}): Omit<OutlineResult, 'type'>;
export declare const accumulate: (list: number[]) => number[];
export declare const inRange: (n: number, min: number, max: number) => boolean;
export declare function mapCellsToOutlineCells(cells: any[]): {
    x: any;
    y: any;
    layoutX: any;
    layoutY: any;
    width: any;
    height: any;
}[];
export declare function groupBy<T>(list: T[], getKey: (item: T) => string): Record<string, T[]>;
export declare function buildPosMap<T>(layers: Record<string, T>, getRect: (layer: T) => any | null, toDom: (rect: any) => any): Record<string, any>;
export declare function buildDataIndexLayers(type: 'fixed-table' | 'check-table' | 'dynamic-table' | '2d-table', cellsWithId: any[], opts: {
    BORDER_INSET: number;
    GROUP_BG_INSET: number;
}, extra: (firstCell: any) => {
    type: OutlineType;
    placeholder: string;
    valuePath: string;
}): {
    [k: string]: {
        showBorder: boolean;
        placeholderBjRect: Omit<CellRect, "layoutX" | "layoutY"> | null;
        lastCell: any;
        type: OutlineType;
        placeholder: string;
        valuePath: string;
        backgroundRect: Omit<CellRect, "layoutX" | "layoutY"> | null;
        hLines: HLine[];
        vLines: VLine[];
        labelPos?: VLine | undefined;
    };
};
