import CreatorTools from "./CreatorTools";
import { MinecraftFlavor } from "./ICreatorToolsData";
import IStorage from "../storage/IStorage";
import IFolder from "../storage/IFolder";
import IMinecraft from "./IMinecraft";
export declare enum CreatorToolsThemeStyle {
    dark = 0,
    light = 1,
    highContrastDark = 2,
    highContrastLight = 3
}
export declare enum HostType {
    web = 0,
    toolsNodejs = 1,
    electronNodeJs = 2,
    electronWeb = 3,
    vsCodeMainNodeJs = 4,
    vsCodeMainWeb = 5,
    vsCodeWebService = 6,
    vsCodeWebWeb = 7,
    webPlusServices = 8,
    testLocal = 9
}
export default class CreatorToolsHost {
    private static _creatorTools?;
    private static _onInitialized;
    private static _onThemeChanged;
    private static _initializing;
    private static _initialized;
    static isLocalNode: boolean;
    static fullLocalStorage: boolean;
    static hostType: HostType;
    static hostManager?: any;
    private static _theme;
    /**
     * True when the OS/browser is in a forced-colors (high contrast) mode.
     * This is orthogonal to dark/light — HC Dark sets theme=dark + isHighContrast,
     * HC Light sets theme=light + isHighContrast.
     */
    static isHighContrast: boolean;
    static retrieveDataFromWebContentRoot: boolean;
    static contentWebRoot: string;
    static vanillaContentRoot: string;
    static projectPath: string;
    static focusPath: string | undefined;
    static baseUrl: string;
    /**
     * Gets the effective root URL for vanilla content (textures, samples, definitions).
     * Returns vanillaContentRoot if set, otherwise falls back to contentRoot.
     */
    static getVanillaContentRoot(): string;
    /**
     * Gets the current theme style
     */
    static get theme(): CreatorToolsThemeStyle;
    /**
     * Sets the theme style and notifies listeners
     */
    static set theme(value: CreatorToolsThemeStyle);
    /**
     * Event fired when theme changes. Use this to update FluentUI components
     * that are initialized outside of React's render cycle.
     */
    static get onThemeChanged(): import("ste-events").IEvent<CreatorToolsHost, CreatorToolsThemeStyle>;
    static initialMode: string | null;
    static modeParameter: string | null;
    static contentUrl: string | null;
    static readOnly: boolean;
    static postMessage: ((message: any) => void) | undefined;
    static prefsStorage: IStorage | null;
    static projectsStorage: IStorage | null;
    static deploymentStorage: IStorage[];
    static worldStorage: IStorage | null;
    static packStorage: IStorage | null;
    static workingStorage: IStorage | null;
    static generateCryptoRandomNumber: (toVal: number) => number;
    static generateUuid: () => string;
    static localFolderExists: ((path: string) => Promise<boolean>) | undefined;
    static localFileExists: ((path: string) => Promise<boolean>) | undefined;
    static ensureLocalFolder: ((path: string) => IFolder) | undefined;
    static createMinecraft: ((flavor: MinecraftFlavor, creatorTOols: CreatorTools) => IMinecraft | undefined) | undefined;
    static canCreateMinecraft: ((flavor: MinecraftFlavor) => boolean) | undefined;
    static decodePng: ((data: Uint8Array) => {
        width: number;
        height: number;
        pixels: Uint8Array;
    } | undefined) | undefined;
    static encodeToPng: ((pixels: Uint8Array, width: number, height: number) => Uint8Array | undefined) | undefined;
    private static _onMessage;
    static get isNodeJs(): boolean;
    static get isVsCode(): boolean;
    static get isWeb(): boolean;
    static get isAppServiceWeb(): boolean;
    static get onMessage(): import("ste-events").IEvent<any, any>;
    static get onInitialized(): import("ste-events").IEvent<CreatorTools, CreatorTools>;
    static getCreatorTools(): CreatorTools | undefined;
    static notifyNewMessage(source: any, message: any): void;
    static setHostType(type: HostType): void;
    static init(): void;
    static _localFolderExists(path: string): Promise<boolean>;
    static _localFileExists(path: string): Promise<boolean>;
    static _ensureElectronLocalFolder(path: string): import("../electronclient/ElectronFolder").default;
}
