import type { DevToolsSys } from "@builder.io/dev-tools/core";
import type { CLIArgs } from "./index";
import { CodeGenSession } from "./codegen";
import type { LaunchServerStatus } from "#ai-utils";
export declare const DEFAULT_PROXY_PORT = 48752;
export interface LaunchArgs extends CLIArgs {
    /** Project ID for the dev server. Only needed when running in a remote container. */
    projectId?: string;
    /** Branch name for the dev server. Only needed when running in a remote container. */
    branchName?: 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;
    /** Install command to execute */
    installCommand?: string;
    /** Dev server command to execute (shorthand) */
    c?: string;
    /** Dev server URL to proxy to (alternative to command + port) */
    serverUrl?: string;
    /** Run dev command in a pseudo-terminal. */
    runInPty?: boolean;
    "run-in-pty"?: boolean;
    /**
     * If true, CLI will run the init command instead of the launch command.
     *
     * @default false
     */
    fusionInit?: 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;
    /**
     * Enable privacy mode for codegen.
     * When enabled, encrypts sensitive data in communication with the AI service.
     *
     * @default false
     */
    privacyMode?: boolean;
    /**
     * Auto-detect dev server URL and port from command output.
     * When enabled, the system will parse the dev server output to automatically
     * detect the server URL and port instead of requiring manual configuration.
     *
     * @default false
     */
    autoDetectDevServer?: boolean;
    /** Inlined to builder.config.json file */
    configJson?: string;
    /** Path to fusion.config.json file */
    configPath?: string;
    /**
     * Enable HTTPS server.
     * When enabled, creates both HTTP and HTTPS servers.
     *
     * @default false
     */
    https?: boolean;
    /**
     * Custom domain to use instead of localhost in proxy URLs.
     * Useful for development with custom SSL certificates.
     */
    localHttpsDomain?: string;
    /**
     * Enable native app mode.
     * When enabled, runs setup and dev commands without proxy server functionality.
     * Useful for native app development where the simulator handles its own server.
     *
     * @default false
     */
    nativeApp?: boolean;
    /**
     * Open Builder in chat-only mode.
     * When enabled, adds ?chatOnly=true to the Builder URL.
     *
     * @default false
     */
    chat?: boolean;
    /**
     * Session ID to resume a previous session.
     * Aligns with fusionConfig.sessionId - overrides any session ID set in the config.
     */
    sessionId?: string;
}
export declare function updateContainerState(sharedState: LaunchServerStatus): void;
export declare function runFusionCommand({ sys, args, existingSession }: {
    sys: DevToolsSys;
    args: LaunchArgs;
    existingSession?: CodeGenSession;
}): Promise<void>;
declare const PUBLIC_METHODS: ("abort" | "abortMerge" | "abortSetupCommand" | "abortToolCall" | "abortValidateCommand" | "authenticateMcpServer" | "clearMcpAuth" | "clearMessageQueue" | "clearSession" | "collectRepoMetrics" | "configureDevOrchestrator" | "createTerminal" | "deleteFile" | "discardFileChanges" | "disposeTerminal" | "fileExists" | "flushMessageQueue" | "getAllFiles" | "getDiff" | "getLocalMcpStatus" | "getSingleFileDiff" | "launchEditor" | "listCustomInstructions" | "listDir" | "loadHistory" | "loadMoreTurns" | "manualCommit" | "pushChanges" | "pushRepoV2" | "queueSystemReminder" | "readBinaryFile" | "readFile" | "readFileWithChecksum" | "reconnectMcpServer" | "refreshMcpStatus" | "restartTerminal" | "restoreBeforeCompletionId" | "restoreFromCompletionId" | "revertDiscard" | "searchFileTree" | "searchFiles" | "sendFeedback" | "sendMessage" | "setCustomInstructions" | "setDefaultAutoPush" | "setMcpServerDisabled" | "setPrivacyMode" | "setProxyOrigin" | "signalTerminal" | "stopEventLoop" | "switchModelOverride" | "switchSessionMode" | "syncChangesFromRemote" | "toolFullfilment" | "tsServerChangeFile" | "tsServerCloseFile" | "tsServerGetApplicableRefactors" | "tsServerGetCodeFixes" | "tsServerGetCompletionDetails" | "tsServerGetCompletions" | "tsServerGetDefinition" | "tsServerGetEditsForRefactor" | "tsServerGetFormatRange" | "tsServerGetImplementation" | "tsServerGetInlayHints" | "tsServerGetLinkedEditingRange" | "tsServerGetNavTree" | "tsServerGetQuickInfo" | "tsServerGetReferences" | "tsServerGetRenameLocations" | "tsServerGetSelectionRange" | "tsServerGetSignatureHelp" | "tsServerGetTypeDefinition" | "tsServerInit" | "tsServerOpenFile" | "tsServerOrganizeImports" | "tsServerRequestDiagnostics" | "undoLastUserMessage" | "updateMessage" | "updateTerminal" | "uploadBackup" | "writeFile" | "writeTerminal")[];
export type PublicCodeGenSession = Pick<InstanceType<typeof CodeGenSession>, (typeof PUBLIC_METHODS)[0]>;
export {};
