import { type ControlAuth } from "@cotal-ai/workspace"; import { type AdditiveAgentReceipt, type AdditiveTeamAttempt } from "./team-additive-attempt.js"; type Agent = AdditiveAgentReceipt["createdAgents"][number]; export interface OriginalIncarnation { requested: string; name: string; id: string; lifecycleUid: string; evidence: "static-slot-active-live" | "manager-ps-exact-identity"; slotRevision: number | null; } /** Retained agent or mixed deployments for this exact manifest. A removed deployment is not * retained and never matches. An unreadable inventory returns nothing here, so the caller's * own guards refuse it unchanged. */ export declare function retainedTeamMatches(root: string, space: string, manifestHash: string): AdditiveTeamAttempt[] | undefined; /** Each original incarnation, read from its original manager. Static auth reads the durable slot * (identity, lifecycle UID, active, live). Open meshes have no slot store, so the pinned manager's * `ps` must report the exact identity and lifecycle UID. A missing, retired, successor or * foreign holder refuses; nothing is relaunched or adopted. The read is ordered, not atomic. */ export declare function verifyOriginalIncarnations(input: { space: string; server: string; auth: ControlAuth; mode: "auth" | "open"; managerInstanceId: string; agents: readonly Agent[]; target: Record; }): Promise<{ managerEpoch: number | null; agents: OriginalIncarnation[]; }>; export {}; //# sourceMappingURL=team-retained.d.ts.map