import type { RuntimeAgentId, RuntimeTaskImage, RuntimeTaskSessionSummary } from "../core/api-contract.js";
import type { SessionTransitionEvent } from "./session-state-machine.js";
export interface AgentAdapterLaunchInput {
    taskId: string;
    agentId: RuntimeAgentId;
    binary?: string;
    args: string[];
    autonomousModeEnabled?: boolean;
    cwd: string;
    prompt: string;
    images?: RuntimeTaskImage[];
    startInPlanMode?: boolean;
    resumeFromTrash?: boolean;
    env?: Record<string, string | undefined>;
    workspaceId?: string;
}
export type AgentOutputTransitionDetector = (data: string, summary: RuntimeTaskSessionSummary) => SessionTransitionEvent | null;
export type AgentOutputTransitionInspectionPredicate = (summary: RuntimeTaskSessionSummary) => boolean;
export interface PreparedAgentLaunch {
    binary?: string;
    args: string[];
    env: Record<string, string | undefined>;
    cleanup?: () => Promise<void>;
    detectOutputTransition?: AgentOutputTransitionDetector;
    shouldInspectOutputForTransition?: AgentOutputTransitionInspectionPredicate;
}
export declare function prepareAgentLaunch(input: AgentAdapterLaunchInput): Promise<PreparedAgentLaunch>;
//# sourceMappingURL=agent-session-adapters.d.ts.map