import { ExtensionType } from '../../../extensions/Extensions';
import type { System } from '../../renderers/shared/system/System';
import type { CanvasAndContext } from '../../renderers/shared/texture/CanvasPool';
import type { Texture } from '../../renderers/shared/texture/Texture';
import type { Renderer } from '../../renderers/types';
import type { HTMLTextStyle } from '../HtmlTextStyle';
import type { TextViewOptions } from '../TextView';
import type { FontCSSStyleOptions } from './utils/loadFontCSS';
export declare const FontStylePromiseCache: Map<string, Promise<string>>;
export declare class HTMLTextRenderData {
    svgRoot: SVGSVGElement;
    foreignObject: SVGForeignObjectElement;
    domElement: HTMLElement;
    styleElement: HTMLElement;
    image: HTMLImageElement;
    canvasAndContext?: CanvasAndContext;
    constructor();
}
export declare class HTMLTextSystem implements System {
    /** @ignore */
    static extension: {
        readonly type: readonly [ExtensionType.WebGLSystem, ExtensionType.WebGPUSystem, ExtensionType.CanvasSystem];
        readonly name: "htmlText";
    };
    static defaultFontOptions: FontCSSStyleOptions;
    private _activeTextures;
    /**
     * WebGPU has a cors issue when uploading an image that is an SVGImage
     * To get around this we need to create a canvas draw the image to it and upload that instead.
     * Bit of a shame.. but no other work around just yet!
     */
    private readonly _createCanvas;
    constructor(renderer: Renderer);
    getTexture(options: TextViewOptions): Promise<Texture>;
    getManagedTexture(text: string, resolution: number, style: HTMLTextStyle, textKey: string): Promise<Texture>;
    private _buildTexturePromise;
    private _increaseReferenceCount;
    decreaseReferenceCount(textKey: string): void;
    private _cleanUp;
    getReferenceCount(textKey: string): number;
    destroy(): void;
}
