import { ProjectData } from './data.js';
import { Workspace } from './workspace.js';
interface NativeToolsAPI {
    newSubProject(name: string, filename?: string, projectKind?: string): boolean;
    switchProject(id: number): void;
    packageProject(destDir?: string): number;
    loadFile(filename: string): number;
    loadScene(filename: string, parent?: string): number;
    awaitJob(jobId: number, cb: (success: boolean) => void): void;
    openBrowser(url: string): void;
    computeMeshBounds(meshId: string, out: Float32Array): void;
    saveProject(): void;
    getComponentTypes(): {
        name: string;
        properties: Record<string, string>;
    }[];
}
interface NativeUiAPI {
    freeImage(id: number): void;
    loadImage(data: ArrayBuffer): [number, number];
    text(text: string): void;
    label(text: string): void;
    button(label: string): boolean;
    image(id: number, width: number, height: number): boolean;
    inputText(label: string, value: string): string | null;
    inputTextPassword(label: string, value: string): string | null;
    inputTextMultiline(widgetId: string, value: string): string | null;
    checkbox(label: string, value: boolean): boolean | null;
    colorEdit4(label: string, value: Float32Array): boolean;
    dummy(width: number, height: number): void;
    sameLine(offset?: number): void;
    separator(): void;
    spinner(): void;
    beginGroup(): void;
    endGroup(): void;
    inputFloat(label: string, value: number): number | null;
    inputFloat3(label: string, value: Float32Array): boolean;
    inputInt(label: string, value: number): number | null;
    inputInt3(label: string, value: Int32Array): boolean;
}
declare global {
    function _wl_internalBinding(moduleName: 'tools'): NativeToolsAPI;
    function _wl_internalBinding(moduleName: 'ui'): NativeUiAPI;
    /** @todo Remove/deprecate */
    function _wl_internalBinding(moduleName: 'data'): ProjectData;
    function _wl_internalBinding(moduleName: 'workspace'): Workspace;
}
export {};
