import { EventEmitter } from "eventemitter3";
import { type Godot } from "@gdquest/gd-types";
import { type GdExerciseFile, type GdExerciseLog } from "../utils.mts";
export type GdPlayerStatus = "uninitialized" | "requestQuit" | "init" | "started";
export interface GdPlayerControllerEvents {
    ready: () => void;
    log: (message: string) => void;
    logTest: (entry: GdExerciseLog) => void;
    logError: (message: string) => void;
    playerStatus: (status: GdPlayerStatus) => void;
    progress: (current: number, total: number) => void;
}
export declare class GdPlayerController extends EventEmitter<GdPlayerControllerEvents> {
    parent: HTMLElement | null;
    canvas: HTMLCanvasElement | null;
    projectId: string;
    project: string;
    mainScene: string;
    _engineInit: Promise<void> | null;
    engine: Godot.Engine | null;
    size: Record<string, number>;
    _errorMessage: string[] | null;
    _sendErrorMessageTimeoutId: number;
    isSnippet: boolean;
    _playerStatus: GdPlayerStatus;
    get playerStatus(): GdPlayerStatus;
    set playerStatus(status: GdPlayerStatus);
    _lowProcessorUsageMode: boolean;
    get lowProcessorUsageMode(): boolean;
    set lowProcessorUsageMode(mode: boolean);
    constructor(projectId: string, project: string, mainScene: string, size: Record<string, number>, isSnippet?: boolean);
    _sendErrorMessage(): void;
    _getEngineParameters(): Partial<Godot.GodotConfig>;
    _onPrint(...args: unknown[]): void;
    _onPrintError(...args: unknown[]): void;
    init(): Promise<void>;
    loadEngine(): Promise<void>;
    addFile(file: GdExerciseFile): Promise<void>;
    launch(): Promise<void>;
    log(entry: GdExerciseLog): void;
    restart(): Promise<void>;
    clearCanvas(addNewCanvas?: boolean): void;
    dispose(): void;
}
//# sourceMappingURL=gdplayer.d.mts.map