/**
 * Canvas 样式管理器
 * 提供类似 CSS 的样式定义和管理方式
 *
 * 设计原则：
 * 1. 所有颜色/字体/尺寸通过语义化 Token 管理，禁止在渲染模块中硬编码
 * 2. 支持多主题切换（default/dark/blue 等），通过 setTheme() 运行时切换
 * 3. 业务色（优先级/状态色等）不纳入主题切换，由数据驱动
 * 4. Viewer 和核心模块通过 grid.styleManager.getToken('xxx') 获取当前主题色值
 */
/** 主字体族 —— 用于表头、Paint 等核心渲染 */
export declare const FONT_FAMILY_PRIMARY = "\"Helvetica Neue\", Helvetica, \"PingFang SC\", \"Hiragino Sans GB\", \"Microsoft YaHei\", Arial, sans-serif";
/** 系统字体族 —— 用于大多数 Viewer 和新组件 */
export declare const FONT_FAMILY_SYSTEM = "-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif";
/** Viewer 内容左内边距 */
export declare const VIEWER_CELL_PADDING_LEFT = 10;
/** Viewer 内容右内边距 */
export declare const VIEWER_CELL_PADDING_RIGHT = 10;
/** Viewer 后置区域宽度（编辑笔等） */
export declare const VIEWER_AFTER_AREA_WIDTH = 30;
/** Link 图标区域宽度 */
export declare const VIEWER_LINK_ICON_AREA_WIDTH = 20;
/** 编辑图标尺寸 */
export declare const VIEWER_EDIT_ICON_SIZE = 14;
/** 错误图标尺寸 */
export declare const VIEWER_ERROR_ICON_SIZE = 12;
/** 通用图标尺寸 */
export declare const VIEWER_ICON_SIZE = 14;
/** 通用内边距 */
export declare const VIEWER_PADDING = 8;
/** 通用字体大小 */
export declare const VIEWER_FONT_SIZE = 13;
/** 下划线偏移量 */
export declare const VIEWER_UNDERLINE_OFFSET = 2;
/** 箭头图标尺寸 */
export declare const VIEWER_ARROW_ICON_SIZE = 12;
export interface CellStyle {
    backgroundColor?: string;
    backgroundColorHover?: string;
    backgroundColorActive?: string;
    backgroundColorReadonly?: string;
    color?: string;
    fontSize?: number;
    fontFamily?: string;
    fontWeight?: string;
    textAlign?: CanvasTextAlign;
    textBaseline?: CanvasTextBaseline;
    borderColor?: string;
    borderWidth?: number;
    borderStyle?: 'solid' | 'dashed' | 'dotted';
    paddingTop?: number;
    paddingRight?: number;
    paddingBottom?: number;
    paddingLeft?: number;
    opacity?: number;
    cursor?: string;
}
export interface TableTheme {
    global?: CellStyle;
    header?: CellStyle;
    cell?: CellStyle;
    readonly?: CellStyle;
    striped?: {
        enabled?: boolean;
        oddColor?: string;
        evenColor?: string;
    };
    hover?: {
        enabled?: boolean;
        backgroundColor?: string;
    };
    selected?: CellStyle;
    editing?: CellStyle;
    checked?: {
        enabled?: boolean;
        backgroundColor?: string;
    };
}
/**
 * 语义化 Token 接口
 * 每个 Token 代表一个语义化的样式值，所有主题需提供完整映射。
 *
 * 命名规则：
 * - 文字色：text + 语义（textPrimary, textSecondary, textPlaceholder...）
 * - 背景色：bg + 语义（bgDefault, bgHeader, bgReadonly...）
 * - 边框色：border + 语义（borderDefault, borderLight...）
 * - 阴影色：shadow + 语义（shadowFixedColumn, shadowTooltip...）
 * - 图标色：icon + 语义（iconDefault, iconSecondary...）
 * - 功能色：语义名（linkColor, errorColor, selectionBorder...）
 */
export interface ThemeTokens {
    /** 主文本色 */
    textPrimary: string;
    /** 次要文本色（Footer 文本、GroupRow 文本等） */
    textSecondary: string;
    /** 占位符色（无值时显示的灰色文字） */
    textPlaceholder: string;
    /** 禁用/只读文本色 */
    textDisabled: string;
    /** 表头文本色 */
    textHeader: string;
    /** 链接色 */
    textLink: string;
    /** 链接 hover 色 */
    textLinkHover: string;
    /** 错误提示色 */
    textError: string;
    /** 拖拽提示文本色 */
    textDragTooltip: string;
    /** 新增行文本色（normal） */
    textAddRow: string;
    /** 新增行文本色（hover） */
    textAddRowHover: string;
    /** GroupRow 提示文本色 */
    textGroupHint: string;
    /** Footer 提示文本色 */
    textFooterHint: string;
    /** 嵌套表格次要文本色 */
    textNestedSecondary: string;
    /** 嵌套表格主文本色 */
    textNestedPrimary: string;
    /** 嵌套表格空值色 */
    textNestedEmpty: string;
    /** Loading 文本色 */
    textLoading: string;
    /** No Image 文本色 */
    textNoImage: string;
    /** TAPD 同步任务名称高亮色 */
    textTapdHighlight: string;
    /** 默认背景 */
    bgDefault: string;
    /** 表头背景 */
    bgHeader: string;
    /** 只读背景 */
    bgReadonly: string;
    /** hover 背景 */
    bgHover: string;
    /** 编辑态背景 */
    bgEditing: string;
    /** 选中行(checkbox)背景 */
    bgChecked: string;
    /** 斑马纹奇数行 */
    bgStripedOdd: string;
    /** 斑马纹偶数行 */
    bgStripedEven: string;
    /** 搜索匹配背景 */
    bgSearchMatch: string;
    /** 新增行背景（normal） */
    bgAddRow: string;
    /** 新增行背景（hover） */
    bgAddRowHover: string;
    /** 拖拽提示框背景 */
    bgDragTooltip: string;
    /** Footer 背景 */
    bgFooter: string;
    /** Upstream 可用状态背景 */
    bgUpstreamAvailable: string;
    /** 嵌套表格背景 */
    bgNested: string;
    /** 嵌套表格斑马纹 */
    bgNestedStriped: string;
    /** 嵌套默认头像背景 */
    bgNestedAvatar: string;
    /** Viewer 项背景（文件项、节点项等） */
    bgViewerItem: string;
    /** 默认 Tag 背景 */
    bgTagDefault: string;
    /** 进度条轨道色 */
    bgProgressTrack: string;
    /** 顶层实体行背景色（path_id.length === 2 的 Entity 行） */
    bgTopLevelEntity: string;
    /** 顶层实体行 hover 背景色 */
    bgTopLevelEntityHover: string;
    /** 需求变更-新增需求背景色 */
    bgDemandChangeAdd: string;
    /** 需求变更-新增需求 hover 背景色 */
    bgDemandChangeAddHover: string;
    /** 需求变更-取消需求背景色 */
    bgDemandChangeCancel: string;
    /** 需求变更-取消需求 hover 背景色 */
    bgDemandChangeCancelHover: string;
    /** 嵌套列父表头默认背景色（无自定义 color 时使用） */
    bgNestedHeaderDefault: string;
    /** 嵌套列子表头之间的分割线颜色 */
    nestedChildDivider: string;
    /** 默认边框色 */
    borderDefault: string;
    /** 树形缩进虚线颜色（对应 DOM 版本 --am-color-8e8e8e-767e89） */
    treeLineColor: string;
    /** 搜索匹配边框色 */
    borderSearchMatch: string;
    /** 选中区域边框色 */
    selectionBorder: string;
    /** 选中区域背景色 */
    selectionBg: string;
    /** 列选中行/列背景色 */
    selectionRowBg: string;
    /** 列选中指示线 */
    selectionIndicator: string;
    /** 提醒三角颜色 */
    reminderColor: string;
    /** 拖拽指示色（主题蓝） */
    dragIndicator: string;
    /** Resize 高亮条 */
    resizeHighlight: string;
    /** 新增行边框色 */
    borderAddRow: string;
    /** 新增行边框色（disabled） */
    borderAddRowDisabled: string;
    /** 嵌套表格边框色 */
    borderNested: string;
    /** 嵌套按钮边框 */
    borderNestedButton: string;
    /** 嵌套选中色 */
    selectionNested: string;
    /** 加载动画色 */
    loadingColor: string;
    /** autofill 边框色 */
    autofillBorder: string;
    /** Boolean checkbox 边框色（未勾选 + 可编辑） */
    checkboxBorder: string;
    /** Boolean checkbox 边框色（未勾选 + 只读） */
    checkboxBorderDisabled: string;
    /** Boolean checkbox 填充色（已勾选 + 可编辑） */
    checkboxChecked: string;
    /** Boolean checkbox 填充色（已勾选 + 只读） */
    checkboxCheckedDisabled: string;
    /** 固定列阴影 */
    shadowFixedColumn: string;
    /** Tooltip 阴影 */
    shadowTooltip: string;
    /** 拖拽手柄阴影 */
    shadowDragHandle: string;
    /** 开关阴影 */
    shadowSwitch: string;
    /** Stage 分组内阴影（标准） */
    shadowStageInset: string;
    /** Stage 分组内阴影（单行柔和版） */
    shadowStageInsetLight: string;
    /** 滚动条滑块色 */
    scrollerColor: string;
    /** 滚动条滑块聚焦色 */
    scrollerFocusColor: string;
    /** 默认图标色 */
    iconDefault: string;
    /** 次要图标色（下拉箭头等） */
    iconSecondary: string;
    /** Link 图标色 */
    iconLink: string;
    /** 展开/折叠按钮色 */
    iconExpand: string;
    /** 展开/折叠按钮激活色 */
    iconExpandActive: string;
    /** 筛选激活色（筛选命中该列时，筛选图标常驻且使用此色） */
    iconFilterActive: string;
    /** WfState 默认图标色 */
    iconWfStateDefault: string;
    /** 审核图标色 */
    iconReview: string;
    /** 文件图标色 */
    iconFile: string;
    /** 编辑图标色 */
    iconEdit: string;
    /** 删除线色 */
    strikethroughColor: string;
    /** 同步完成色 */
    syncCompleteColor: string;
    /** 头像颜色数组（8色） */
    avatarColors: string[];
    /** 默认头像背景 */
    avatarDefaultBg: string;
    /** 头像文字色 */
    avatarTextColor: string;
    /** 分组行 level0 背景 */
    groupLevel0Bg: string;
    /** 分组行 level1 背景 */
    groupLevel1Bg: string;
    /** 分组行 level2 背景 */
    groupLevel2Bg: string;
    /** 分组行文本色 */
    groupTextColor: string;
    /** 分组名称文本色（对齐 DOM --am-table-cell-text-color） */
    groupNameTextColor: string;
    /** 分组色条右边缘竖线颜色 */
    groupBarBorder: string;
    /** 分隔行 level0 背景 */
    separatorLevel0Bg: string;
    /** 分隔行 level1 背景 */
    separatorLevel1Bg: string;
    /** 分隔行 level2 背景 */
    separatorLevel2Bg: string;
    /** 主字体族 */
    fontFamilyPrimary: string;
    /** 系统字体族 */
    fontFamilySystem: string;
    /** 进度条默认前景色 */
    progressDefaultColor: string;
    /** 进度条手柄填充色 */
    progressHandleFill: string;
    /** 进度条完成色 */
    progressCompleteColor: string;
    /** Tag 文本色（深色） */
    tagTextDark: string;
    /** Tag 文本色（默认） */
    tagTextDefault: string;
    /** Tag 字体 */
    tagFont: string;
    /** Upstream 提醒色 */
    upstreamReminderColor: string;
    /** Upstream 完成色 */
    upstreamCompleteColor: string;
    /** Upstream 完成文本色 */
    upstreamCompleteTextColor: string;
    /** 警告色 */
    warningColor: string;
    /** 分割线色 */
    dividerColor: string;
    /** IOMC 提单成功（已提单）图标色 */
    iomcStateDoneColor: string;
    /** IOMC 未提单图标色 */
    iomcStateNotSubmitColor: string;
    /** IOMC 已驳回图标色 */
    iomcStateRejectColor: string;
    /** 路径文本色 */
    pathTextColor: string;
    /** StatusText 默认文本色 */
    statusTextDefault: string;
    /** StatusText 默认边框色 */
    statusBorderDefault: string;
    /** 审核名称 hover 色 */
    reviewNameHover: string;
}
export declare const themeTokensMap: Record<string, ThemeTokens>;
/**
 * 预定义主题
 */
export declare const themes: Record<string, TableTheme>;
/**
 * 样式管理器类
 *
 * 使用方法：
 * - 获取 Token：styleManager.getToken('textPrimary')
 * - 获取单元格样式：styleManager.getCellStyle({ isHeader: true })
 * - 切换主题：styleManager.setTheme('dark')
 */
export declare class StyleManager {
    private currentTheme;
    private currentTokens;
    private currentThemeName;
    private customStyles;
    constructor(theme?: TableTheme | string);
    /**
     * 切换主题
     */
    setTheme(theme: TableTheme | string): void;
    /**
     * 设置自定义 Token 映射（配合自定义 TableTheme 使用）
     */
    setCustomTokens(tokens: Partial<ThemeTokens>): void;
    /**
     * 获取当前主题名称
     */
    getThemeName(): string;
    /**
     * 获取当前主题
     */
    getTheme(): TableTheme;
    /**
     * 获取当前 Token 映射对象
     */
    getTokens(): ThemeTokens;
    /**
     * 获取单个 Token 值
     * @param key Token 名称
     * @returns Token 值
     *
     * 用法示例：
     *   const color = styleManager.getToken('textPrimary');
     *   ctx.fillStyle = color;
     */
    getToken<K extends keyof ThemeTokens>(key: K): ThemeTokens[K];
    /**
     * 合并样式（类似 CSS 的层叠）
     */
    mergeStyles(...styles: (CellStyle | undefined)[]): CellStyle;
    /**
     * 获取单元格样式
     */
    getCellStyle(options: {
        isHeader?: boolean;
        isReadonly?: boolean;
        isHover?: boolean;
        isEditing?: boolean;
        isStriped?: boolean;
        isChecked?: boolean;
        rowIndex?: number;
        customClass?: string;
    }): CellStyle;
    /**
     * 注册自定义样式类（类似 CSS class）
     */
    registerStyle(className: string, style: CellStyle): void;
    /**
     * 批量注册样式
     */
    registerStyles(styles: Record<string, CellStyle>): void;
    /**
     * 应用样式到 Canvas 上下文
     */
    applyToContext(ctx: CanvasRenderingContext2D, style: CellStyle): void;
    /**
     * 解析 padding 简写（类似 CSS）
     */
    parsePadding(padding: number | string): {
        top: number;
        right: number;
        bottom: number;
        left: number;
    };
    /**
     * 构建字体字符串
     * @param size 字号
     * @param weight 字重
     * @param family 字体族类型 ('primary' | 'system')
     */
    buildFont(size: number, weight?: string, family?: 'primary' | 'system'): string;
}
/**
 * 创建默认样式管理器实例
 */
export declare const defaultStyleManager: StyleManager;
