import type { Identity } from '../identity.js'; import type { Storage } from '../storage.js'; import type { RoomManager } from '../rooms.js'; import type { CocEngine } from '../coc.js'; import type { Planner } from '../planner.js'; import type { KnowledgePool } from '../knowledge.js'; import { P2PSwarmRegistry } from './swarm-registry.js'; import { SwarmScheduler } from './scheduler.js'; import type { MissionInfo, ProactiveMissionSpec, SwarmStatus } from './types.js'; export interface ProactiveMissionEngineOptions { enableLeadership?: boolean; autoRestoreMissions?: boolean; leaseTtlMs?: number; leaseRenewIntervalMs?: number; } export declare class ProactiveMissionEngine { private identity; private storage; private rooms; private coc; private planner; private knowledge; private missionTimers; private leaseTimers; private leadershipState; private checkpoints; private registry; private scheduler; private readonly instanceId; private readonly enableLeadership; private readonly autoRestoreMissions; private readonly leaseTtlMs; private readonly leaseRenewIntervalMs; constructor(identity: Identity, storage: Storage, rooms: RoomManager, coc: CocEngine, planner: Planner, knowledge: KnowledgePool, registry?: P2PSwarmRegistry, scheduler?: SwarmScheduler, options?: ProactiveMissionEngineOptions); private bindEvents; private restoreActiveMissions; startMission(spec: ProactiveMissionSpec): Promise; pauseMission(missionId: string): Promise; resumeMission(missionId: string): Promise; stopMission(missionId: string, reason?: string): Promise; listMissions(roomId?: string): MissionInfo[]; getMission(missionId: string): MissionInfo | undefined; getSwarmStatus(roomId?: string): SwarmStatus; tickMission(missionId: string): Promise; private ensureMissionCycle; private buildMissionDag; private isRunnableStep; private startLeadershipManagement; private stopLeadershipManagement; private refreshLeadership; private ensureLeadershipLease; private isCurrentLeader; private startTicker; private clearTicker; private clearLeaseTicker; private toMissionInfo; destroy(): void; } //# sourceMappingURL=engine.d.ts.map