import type { SmartDataAuthStore } from './classes.authstore.js'; import type { IControllerResourceRuntimeHost } from './classes.resourcecoordinator.js'; import type { ControllerTerminalManager, TControllerTerminalStopReason } from './classes.terminalmanager.js'; import type { IControllerResourceDocument } from './interfaces.projects.js'; export declare class ControllerTerminalResourceHost implements IControllerResourceRuntimeHost { private readonly terminalManager; private readonly store; private readonly pendingStoppedResources; constructor(terminalManager: ControllerTerminalManager, store: Pick); startResource(resourceArg: IControllerResourceDocument, signalArg: AbortSignal): Promise; stopResource(resourceArg: IControllerResourceDocument, signalArg: AbortSignal): Promise; isRunning(resourceArg: IControllerResourceDocument): boolean; isAvailable(): boolean; renameResource(resourceArg: IControllerResourceDocument): Promise; reconcileAttachment(): Promise; retireResource(resourceArg: IControllerResourceDocument, signalArg: AbortSignal): Promise; recordTerminalStopped(projectIdArg: string, resourceIdArg: string, lastExitCodeArg: number | undefined, reasonArg: TControllerTerminalStopReason): Promise; flushPendingStoppedResources(): Promise; /** * Only a root that ended on its own records a stopped intent. A controller-initiated close * leaves the intent alone, so the chat comes back on the next start. */ private stoppedOutcome; private resourceKey; }