import type { LineStyleProps } from '@antv/g';
import { CellBorderPosition, CellClipBox, type CellTheme, type IconTheme, type TextAlign, type TextBaseline } from '../../common/interface';
import type { SimpleBBox } from '../../engine';
import { type GroupedIcons } from './header-cell';
/**
 * text 和 icon 之间布局关系：
 *    y轴： text 和 icon 高度上居中对齐
 *    x轴：
 *       1. text 和 icon 同为 left 或者 right 时，icon bbox 只需要简单放置在 left 或者 right 即可
 *       2. 其他的情况，需要根据实际 text width 确定 icon bbox 开始位置
 */
export declare const getVerticalTextPosition: (bbox: SimpleBBox, textBaseline: TextBaseline) => number;
export declare const getVerticalIconPosition: (iconSize: number, textY: number, textFontSize: number, textBaseline: TextBaseline) => number;
export declare const getHorizontalTextIconPosition: (options: {
    bbox: SimpleBBox;
    textWidth: number;
    textAlign: TextAlign;
    groupedIcons: GroupedIcons;
    iconStyle: IconTheme;
    isCustomRenderer?: boolean;
}) => {
    textX: number;
    leftIconX: number;
    rightIconX: number;
};
/**
 * 类似 background-clip 属性: https://developer.mozilla.org/en-US/docs/Web/CSS/background-clip
 * 分为三种类型：
 * borderBox: 整个 cell 的范围
 * paddingBox: cell 去除 border 的范围
 * contentBox: cell 去除 (border + padding) 的范围
 * -------------------------------
 * |b|           padding         |
 * |o|  |---------------------|  |
 * |r|  |                     |  |
 * |d|  |                     |  |
 * |e|  |---------------------|  |
 * |r|           padding         |
 * -------------------------------
 * -------border-bottom-----------
 * -------------------------------
 */
export declare const getCellBoxByType: (bbox: SimpleBBox, borderPositions: CellBorderPosition[], cellStyle: CellTheme, boxType: CellClipBox) => SimpleBBox;
export declare const getBorderPositionAndStyle: (position: CellBorderPosition, bbox: SimpleBBox, style: CellTheme) => {
    position: {
        x1: number;
        x2: number;
        y1: number;
        y2: number;
    };
    style: Partial<LineStyleProps>;
};
