import type { AgentExecutionResult, InternalReplayGuard, RuntimeSpawnRequest, RuntimeSpawnResult } from '../dispatch/types.js'; import { type StudioOutcomeSource } from '../knowledge/runtime.js'; import type { Clock } from '../knowledge/types.js'; import type { PolicyAuthorizationEngine, StudioAuthorizationEvidenceContext, StudioAuthorizationVerifier, StudioEvidenceAuthorizationResult } from '../policy/types.js'; import type { ProjectStore } from '../project-store/types.js'; interface StudioPolicyAuthorizationEngine extends PolicyAuthorizationEngine { createStudioAuthorizationVerifier(): StudioAuthorizationVerifier; authorizeStudioWithEvidence(request: { readonly subject: { readonly provider: 'github' | 'slack' | 'email' | 'runtime'; readonly subject: string; }; readonly action: 'improve'; }, context: StudioAuthorizationEvidenceContext): StudioEvidenceAuthorizationResult; releaseStudioAuthorizationEvidence(evidence: unknown): void; } export interface AgentExecutionServiceOptions { readonly rawBundle: unknown; readonly repoRoot: string; readonly policyEngine: StudioPolicyAuthorizationEngine; readonly projectStore: ProjectStore; readonly clock: Clock; readonly spawn: (request: RuntimeSpawnRequest) => Promise; readonly replayGuard?: InternalReplayGuard; readonly studioOutcomeSource?: StudioOutcomeSource; /** Required by production composition; binds host dispatch and spawn to one authoritative installation. */ readonly expectedInstallRoot?: string; } export declare class AgentExecutionService { #private; constructor(options: AgentExecutionServiceOptions); execute(rawCommand: unknown, trustedHostContext: unknown): Promise; } export declare function createAgentExecutionService(options: AgentExecutionServiceOptions): AgentExecutionService; export {};