export declare const ACP_SPAWN_MODES: readonly ["run", "session"];
export type SpawnAcpMode = (typeof ACP_SPAWN_MODES)[number];
export type SpawnAcpParams = {
    task: string;
    label?: string;
    agentId?: string;
    cwd?: string;
    mode?: SpawnAcpMode;
    thread?: boolean;
    sandbox?: string;
    streamTo?: "parent" | "none";
};
export type SpawnAcpContext = {
    agentSessionKey?: string;
    agentChannel?: string;
    agentAccountId?: string;
    agentTo?: string;
    agentThreadId?: string | number;
    agentGroupId?: string | number;
};
export type SpawnAcpAcceptedResult = {
    status: "accepted";
    childSessionKey: string;
    runId: string;
    mode: SpawnAcpMode;
    note: string;
    streamLogPath?: string;
};
export type SpawnAcpFailureResult = {
    status: "forbidden" | "error";
    error: string;
    errorCode?: string;
    childSessionKey?: string;
};
export type SpawnAcpResult = SpawnAcpAcceptedResult | SpawnAcpFailureResult;
export declare const ACP_SPAWN_ACCEPTED_NOTE = "initial ACP task queued in isolated session; follow-ups continue in the bound thread.";
export declare const ACP_SPAWN_SESSION_ACCEPTED_NOTE = "thread-bound ACP session stays active after this task; continue in-thread for follow-ups.";
export declare function isSpawnAcpAcceptedResult(result: SpawnAcpResult): result is SpawnAcpAcceptedResult;
export declare function spawnAcpDirect(params: SpawnAcpParams, ctx: SpawnAcpContext): Promise<SpawnAcpResult>;
