import { Doc } from '../../view/Doc';
import { WrText } from '../../model/document/WrText';
import { CommandBase, SelectionModel, PostCommandContext } from './CommandBase';
import { CommandType, CommandPayloadMap } from '../types';
import { Wr } from '../../model/document';
/**
 * 文本样式修改命令基类
 * 支持：设置颜色、加粗、斜体、下划线等
 *
 * 子类只需实现 applyStyle 方法来定义具体的样式修改逻辑
 *
 * 子类可以通过设置 needsCalculatePostCommandContext 属性来控制
 * 是否在执行后重新计算光标位置
 */
export declare abstract class SetStyleBase<T extends CommandType = CommandType> extends CommandBase<T> {
    /**
     * 是否需要在执行后重新计算 postCommandContext
     * 子类可以在构造函数中设置此属性，默认 true
     */
    protected needsCalculatePostCommandContext: boolean;
    constructor(doc: Doc, payload?: CommandPayloadMap[T]);
    protected execute(): Promise<PostCommandContext>;
    /**
     * 计算选区操作后的光标上下文
     * 返回选区范围的开始和结束位置
     *
     * @param inlineFirst 选区开始的 run
     * @param inlineLast 选区结束的 run
     * @returns PostCommandContext (选区的开始和结束光标位置)
     */
    protected calculatePostCommandContext(inlineFirst: Wr | undefined, inlineLast: Wr | undefined): PostCommandContext;
    /**
     * 从选区模型中提取所有 WrText
     * 递归遍历所有选区，提取其中的文本 run
     *
     * @param models 选区模型数组
     * @returns WrText 数组
     */
    protected extractWrTextsFromModels(models: SelectionModel[]): WrText[];
    /**
     * 处理 collapsed 光标 + overlay 场景
     */
    protected handleOverlayCollapsedCursor(): PostCommandContext | null;
    protected abstract applyStyle(run: WrText): void;
}
