import type { SessionManager } from "@caupulican/pi-agent-core/session"; import type { Usage } from "@caupulican/pi-ai/types"; import type { AgentSessionEvent, IsolatedCompletionOptions, IsolatedCompletionResult, ResearchLaneRunOutcome } from "../agent-session.ts"; import type { CapabilityEnvelope, EvidenceBundle } from "../autonomy/contracts.ts"; import type { LaneTracker } from "../autonomy/lane-tracker.ts"; import { type AutonomyTelemetryEvent } from "../autonomy/telemetry-events.ts"; import { type GoalState } from "../goals/goal-state.ts"; import type { SettingsManager } from "../settings-manager.ts"; import { type LaneModelResolver } from "./lane-model-resolver.ts"; import type { collectWorkspaceSources } from "./workspace-collector.ts"; export interface ResearchLaneControllerDeps { isDisposed(): boolean; isChildSession(): boolean; getSessionId(): string; getCwd(): string; getAgentDir(): string; getSessionManager(): SessionManager; getSettingsManager(): SettingsManager; getCapabilityEnvelope(): CapabilityEnvelope | undefined; emit(event: AgentSessionEvent): void; emitAutonomyTelemetry(event: AutonomyTelemetryEvent): void; getGoalStateSnapshot(): GoalState | undefined; getEvidenceBundleSnapshot(): EvidenceBundle | undefined; saveEvidenceBundleSnapshot(bundle: EvidenceBundle): string; addSpawnedUsage(usage: Usage, opts: { label?: string; sourceSessionId?: string; reportId: string; }): string | undefined; runIsolatedCompletion(opts: IsolatedCompletionOptions): Promise; collectWorkspaceSources: typeof collectWorkspaceSources; } /** Owns autonomous research demand, scheduling, execution, persistence, and cancellation. */ export declare class ResearchLaneController { private _timer; private _isRunning; private _lastSkipReason; private _historySeeded; private _persistedRunCount; private readonly abortController; private readonly warnedUnboundToolGrants; private readonly deps; private readonly lanes; private readonly models; constructor(deps: ResearchLaneControllerDeps, lanes: LaneTracker, models: LaneModelResolver); seedHistory(): void; getLastSkipReason(): string | undefined; abort(): void; clearTimer(): void; scheduleFromIdle(): void; runOnce(request?: { query?: string; context?: string; goalId?: string; }): Promise; private buildDemand; private runScheduled; private buildEnvelope; private warnUnboundToolGrants; private emitTerminalTelemetry; } //# sourceMappingURL=research-lane-controller.d.ts.map