import { Context2d } from 'jspdf';
import { IRowElement } from '../../../interface/Row';
import { ITextMetrics } from '../../../interface/Text';
import { DrawPdf } from '../DrawPdf';
import { IElement } from '../../../interface/Element';

export interface IMeasureWordResult {
    width: number;
    endElement: IElement;
}
export declare class TextParticle {
    private draw;
    private options;
    private ctx2d;
    private curX;
    private curY;
    private text;
    private bold?;
    private italic?;
    private curStyle;
    private curColor?;
    cacheMeasureText: Map<string, TextMetrics>;
    constructor(draw: DrawPdf);
    measureBasisWord(ctx2d: Context2d, font: string): ITextMetrics;
    measureWord(ctx2d: Context2d, elementList: IElement[], curIndex: number): IMeasureWordResult;
    measurePunctuationWidth(ctx2d: Context2d, element: IElement): number;
    measureText(ctx2d: Context2d, element: IElement): ITextMetrics;
    complete(): void;
    record(ctx2d: Context2d, element: IRowElement, x: number, y: number): void;
    private _setCurXY;
    private _render;
}
