import type { AgentVariantsOrchestrator } from '../mcp/agent-variants';
import type { ChangeRequest } from '../types/change-request-types';
import type { TerminalAgentRunResult } from './TerminalAgentRunner';
import { SessionBridgeService } from './SessionBridgeService';
type AgentRunner = {
    getDisplayName?: () => string;
    runChangeRequest: (params: {
        request: ChangeRequest;
        cwd: string;
        sessionId: string;
        resumeSession?: boolean;
        onFeedback: (message: string) => void;
    }) => Promise<TerminalAgentRunResult>;
};
export type InlineVariantGenerationServiceOptions = {
    bridge: SessionBridgeService;
    orchestrator: AgentVariantsOrchestrator;
    runner: AgentRunner;
    createSessionId?: () => string;
    leaseHeartbeatMs?: number;
};
/**
 * Runs selected-element variant requests through the server-owned variants lifecycle.
 */
export declare class InlineVariantGenerationService {
    private bridge;
    private orchestrator;
    private runner;
    private createSessionId;
    private leaseHeartbeatMs;
    constructor(options: InlineVariantGenerationServiceOptions);
    /**
     * @effect Starts an inline variants session, runs each leased worktree with an isolated terminal agent, and reports each result.
     */
    processVariantRequest(request: ChangeRequest): Promise<TerminalAgentRunResult>;
    /**
     * @effect Converts per-variant setup/reporting failures into failed results after sibling runs settle.
     */
    private runLeasedVariantSafely;
    /**
     * @effect Runs one leased code-generation item and reports its terminal status to the variants orchestrator.
     */
    private runLeasedVariant;
    /**
     * @effect Periodically reports a running status so long terminal agent runs keep their variant lease.
     */
    private startLeaseHeartbeat;
}
export {};
//# sourceMappingURL=InlineVariantGenerationService.d.ts.map