import { Pathy } from '@bscotch/pathy';
import { GameMakerCliCommand, GameMakerCliWorker } from '../types/gameMakerCli.js';
import { GameMakerEngineStatic } from './GameMakerEngine.static.js';
import { GameMakerBuildOptions, GameMakerEngineProject, GameMakerExecuteOptions, GameMakerLogOptions, GameMakerRunOptions, GameMakerRuntimeConfig, GameMakerSupportedArchitecture, GameMakerUserData } from './GameMakerEngine.types.js';
import { GameMakerUser } from './GameMakerUser.js';
export * from './GameMakerEngine.types.js';
/**
 * Discover and convert the currently installed GameMaker Studio
 * into an internal representation that can
 * be manipulated programmatically.
 */
export declare class GameMakerEngine extends GameMakerEngineStatic {
    readonly dir: Pathy;
    readonly isBeta: boolean;
    constructor(options?: {
        beta?: boolean;
    });
    get name(): string;
    get runtimesConfigPath(): Pathy<unknown>;
    get uiLogPath(): Pathy<unknown>;
    get appDataPath(): Pathy;
    get usersDirectory(): Pathy;
    get usersConfigFilePath(): Pathy;
    get currentOs(): "linux" | "windows" | "osx";
    get currentArchitecture(): GameMakerSupportedArchitecture;
    run(project: GameMakerEngineProject, options?: GameMakerRunOptions): Promise<import("./GameMakerEngine.types.js").GameMakerExecutionResults>;
    build(project: GameMakerEngineProject, options?: GameMakerBuildOptions): Promise<import("./GameMakerEngine.types.js").GameMakerExecutionResults>;
    protected runBuildCommand(project: GameMakerEngineProject, options?: GameMakerBuildOptions & {
        compile?: boolean;
    }): Promise<import("./GameMakerEngine.types.js").GameMakerExecutionResults>;
    /**
     * The local directory for the currently active user.
     */
    userDirectory(): Promise<Pathy>;
    /**
     * The currently active user.
     */
    user(): Promise<GameMakerUser>;
    /**
     * The contents of the config file for the active
     * user.
     */
    userConfig(): Promise<GameMakerUserData>;
    runtimesConfig(): Promise<GameMakerRuntimeConfig>;
    /**
     * The path to the current runtime's folder,
     * which contains config information and the
     * runtime executable, plus Igor etc.
     */
    runtimeDirectory(): Promise<Pathy<unknown>>;
    /**
     * Path to the most recently used rumtime CLI executable.
     */
    cliPath(): Promise<Pathy>;
    /**
     * The most recently used runtime version.
     */
    runtimeVersion(): Promise<string>;
    protected execute<W extends GameMakerCliWorker>(project: GameMakerEngineProject, worker: W, command: GameMakerCliCommand<W>, executionOptions: GameMakerExecuteOptions, otherOptions?: GameMakerLogOptions): Promise<import("./GameMakerEngine.types.js").GameMakerExecutionResults>;
}
//# sourceMappingURL=GameMakerEngine.d.ts.map