import type { CoreTextNodeProps } from '../../CoreTextNode.js';
import type { Stage } from '../../Stage.js';
import type { TrFontFace } from '../font-face-types/TrFontFace.js';
import { TextRenderer, type TrFontProps } from './TextRenderer.js';
declare module './TextRenderer.js' {
    interface TextRendererMap {
        canvas: CanvasTextRenderer;
    }
}
export declare class CanvasTextRenderer extends TextRenderer {
    protected canvas: OffscreenCanvas | HTMLCanvasElement;
    protected context: OffscreenCanvasRenderingContext2D | CanvasRenderingContext2D;
    /**
     * Font family map used to store web font faces that were added to the
     * canvas text renderer.
     */
    private fontFamilies;
    private fontFamilyArray;
    type: 'canvas' | 'sdf';
    constructor(stage: Stage);
    canRenderFont(props: TrFontProps): boolean;
    isFontFaceSupported(fontFace: TrFontFace): boolean;
    isFontLoaded(props: CoreTextNodeProps): boolean;
    addFontFace(fontFace: TrFontFace): void;
    renderText(props: CoreTextNodeProps): void;
}
