import type { AutoApproveState } from '../app/approvals/session-auto-approve.js';
import type { ApprovalGate } from '../app/approvals/types.js';
import type { SettingsManager } from '../app/settings-manager.js';
import type { StartupInfoEntry } from '../app/startup-info.js';
import { type DesktopRemoteControlSession } from './desktop-runtime.js';
import { ShortyPhoneManager } from './shorty-phone-manager.js';
export interface RemoteControlBootstrapOptions {
    settingsManager: SettingsManager;
    autoApproveState: AutoApproveState;
    agentDir: string;
    teamAccount?: boolean;
    log?: (message: string) => void;
}
export interface RemoteControlStartupResult {
    startupInfos: StartupInfoEntry[];
    startupWarnings: string[];
}
export declare class RemoteControlBootstrap {
    private readonly settingsManager;
    private readonly autoApproveState;
    private readonly agentDir;
    private readonly log;
    private readonly approvalController;
    private teamAccount;
    private session?;
    private runtime?;
    private brokerClient?;
    private phoneManager?;
    constructor(options: RemoteControlBootstrapOptions);
    createApprovalGate<T>(fallback: ApprovalGate<T>): ApprovalGate<T>;
    attachSession(session: DesktopRemoteControlSession): void;
    getPhoneManager(): ShortyPhoneManager;
    initializeInteractive(): Promise<RemoteControlStartupResult>;
    close(): Promise<void>;
    setTeamAccount(teamAccount: boolean): Promise<void>;
}
//# sourceMappingURL=bootstrap.d.ts.map