import { Platform, type PlatformSettings } from '../Platform.js';
import { ImageWorkerManager, type ImageWorkerFactory } from './lib/ImageWorker.js';
import type { Stage } from '../../Stage.js';
import type { ImageResponse } from '../../textures/ImageTexture.js';
import type { GlContextWrapper } from '../GlContextWrapper.js';
export declare class WebPlatform extends Platform {
    private useImageWorker;
    private imageWorkerManager;
    private hasWorker;
    private stopped;
    constructor(settings?: PlatformSettings);
    protected createImageWorkerManager(numImageWorkers: number): ImageWorkerManager;
    protected getImageWorkerFactory(): ImageWorkerFactory;
    createCanvas(): HTMLCanvasElement;
    createContext(): GlContextWrapper;
    getElementById(id: string): HTMLElement | null;
    startLoop(stage: Stage): void;
    stopLoop(): void;
    fetch(url: string): Promise<Blob>;
    createImage(blob: Blob, premultiplyAlpha: boolean | null, sx: number | null, sy: number | null, sw: number | null, sh: number | null): Promise<ImageResponse>;
    loadImage(src: string, premultiplyAlpha: boolean | null, sx?: number | null, sy?: number | null, sw?: number | null, sh?: number | null): Promise<ImageResponse>;
    loadSvg(src: string, width: number | null, height: number | null, sx?: number | null, sy?: number | null, sw?: number | null, sh?: number | null): Promise<ImageResponse>;
    loadCompressedTexture(src: string): Promise<ImageResponse>;
    getTimeStamp(): number;
    addFont(font: FontFace): void;
}
