import type { IBoundsLike } from '@visactor/vutils';
import type { IContext2d, IRichTextParagraphCharacter } from '../../interface';
export declare const DIRECTION_KEY: {
    horizontal: {
        width: string;
        height: string;
        left: string;
        top: string;
        x: string;
        y: string;
        bottom: string;
    };
    vertical: {
        width: string;
        height: string;
        left: string;
        top: string;
        x: string;
        y: string;
        bottom: string;
    };
};
export declare const regLetter: RegExp;
export declare const regFirstSpace: RegExp;
export declare function applyFillStyle(ctx: IContext2d, character: IRichTextParagraphCharacter, b?: IBoundsLike): void;
export declare function applyStrokeStyle(ctx: IContext2d, character: IRichTextParagraphCharacter): void;
export declare function prepareContext(ctx: IContext2d): void;
export declare function getStrByWithDom(desc: string, width: number, style: string, guessIndex: number, needTestLetter?: boolean): number;
export declare function getStrByWithCanvas(desc: string, width: number, character: IRichTextParagraphCharacter, guessIndex: number, needTestLetter?: boolean): number;
export declare function getWordStartEndIdx(string: string, index: number): {
    startIdx: number;
    endIdx: number;
};
export declare function testLetter(string: string, index: number, negativeWrongMatch?: boolean): number;
export declare function testLetter2(string: string, index: number): number;
export declare function measureTextDom(text: string, style: string): {
    ascent?: number;
    height?: number;
    descent?: number;
    width?: number;
};
export declare function measureTextCanvas(text: string, character: IRichTextParagraphCharacter, mode?: 'actual' | 'font'): {
    ascent: number;
    height: number;
    descent: number;
    width: number;
};
export declare function getFontString(character: IRichTextParagraphCharacter, ctx: IContext2d | null): string;
