import type { DevToolsSys } from "@builder.io/dev-tools/core";
import type { CLIArgs } from "./index";
import { type WorkspaceConfiguration } from "./codegen";
import { type CommitMode } from "./code-tools";
/**
 * Large random-ish port number that is unlikely to be used
 */
export declare const PROXY_PORT = 48752;
export interface LaunchArgs extends CLIArgs {
    cwdAgent?: string;
    /** Project ID for the dev server. Only needed when running in a remote container. */
    projectId?: string;
    /** Silent mode for launch command */
    silent?: boolean;
    /** Port number for the dev server */
    port?: number;
    /** Port number for the dev server (shorthand) */
    p?: number;
    /** Dev server command to execute */
    command?: string;
    /** Dev server command to execute (shorthand) */
    c?: string;
    /** Use development server instead of production for launch command */
    dev?: boolean;
    /** Skip browser auto-open (flag form) */
    open?: boolean;
    /**
     * If true, CLI will be interactive and prompt the user for input.
     *
     * @default true
     */
    interactive?: boolean;
    /**
     * Decides whether to skip authentication for the user's proxy server.
     * Our own _builder.io/ endpoitns are always authenticated.
     *
     * @default false
     */
    authenticateProxy?: boolean;
    /**
     * Indicates the type of docker image the CLI is running on.
     *
     * @default "node"
     */
    dockerImageType?: "fusion-starter" | "node";
    /**
     * Output structured JSON data.
     * Useful for programmatic consumption (e.g., VSCode extensions).
     *
     * @default false
     */
    jsonOutput?: boolean;
    /**
     * Enable local development mode with port availability checking.
     * When enabled, automatically finds an available port if the default is in use.
     *
     * @default false
     */
    local?: boolean;
}
export interface FusionConfig {
    command: string;
    projectId?: string;
    checkCommand?: string;
    workingDirectory: string;
    workspace?: WorkspaceConfiguration | string;
    authenticateProxy: boolean;
    allowedCommands: string[];
    commitMode: CommitMode;
    serverUrl: string;
}
export declare function runFusionCommand({ sys, args, }: {
    sys: DevToolsSys;
    args: LaunchArgs;
}): Promise<undefined>;
