import type { ScenePrincipal, SceneTemplate } from './contracts.js'; /** Extension point for activation shapes that need more than the core read-only setup. */ export interface SceneActivationAdapter { id: string; preflight(principal: ScenePrincipal, template: SceneTemplate, configuration: unknown): Promise<{ ready: boolean; missing: string[]; }>; create(principal: ScenePrincipal, template: SceneTemplate, configuration: unknown): Promise; get(principal: ScenePrincipal, activationId: string): unknown; configure(principal: ScenePrincipal, activationId: string, expectedRevision: number, configuration: unknown): Promise; transition(principal: ScenePrincipal, activationId: string, expectedRevision: number, status: 'active' | 'paused' | 'archived'): Promise; tick(): Promise; stop(): Promise; executeTask?(runId: string, conversationId: string): Promise; allowsTaskNotification?(taskId: string): boolean; listProjectBranches?(principal: ScenePrincipal, projectId: string): Promise; associateBranch?(principal: ScenePrincipal, input: unknown): Promise; }