import { type ExactInstallerLaunchInput, type ExactInstallerLaunchReceipt } from "../lib/hermesExactPackageLauncher.js"; export type HermesAdminMode = "plan" | "apply" | "resume" | "status" | "verify" | "restart" | "rebuild" | "rollback" | "disable"; export interface ExactPackageCandidate { package: string; sha256: string; } export interface HermesAdminPackageCandidates { sellableInstall: ExactPackageCandidate; sellableMcp: ExactPackageCandidate; adminMcp: ExactPackageCandidate; adminInstall: ExactPackageCandidate; } export interface SetupHermesAdminAgentInput { profileKind: "admin"; profileSlug: string; mode: HermesAdminMode; teamId: string; primaryChannel: { mode: "create"; name: string; }; allowedSlackUserIds: string[]; secondaryReadChannelIds: string[]; canonicalAdminConfigPath: string; canonicalAdminStatePath: string; packageCandidates: HermesAdminPackageCandidates; evidenceTarget: string; profilesRoot: string; model: "gpt-5.6-sol"; runId?: string; inputHash?: string; approved?: boolean; requestId?: string; requestHash?: string; approvalPacketFile?: string; disableReason?: string; uatAuthorization?: { schemaVersion: "hermes-admin-uat-control-v1"; runId: string; controlHash: string; }; uatFailureControl?: { schemaVersion: "hermes-admin-uat-control-v1"; runId: string; action: "inject" | "resume" | "cleanup-only"; scenario: "browser_session_uncertain_create" | "channel_uncertain_create"; controlHash: string; }; } export interface HermesAdminPlanResult extends Record { ok: true; profileKind: "admin"; mode: HermesAdminMode; status: "planned"; runId: string; inputHash: string; plan: SetupHermesAdminAgentInput; userActionRequired: false; } export interface HermesAdminAgentOptions { launcher?: (input: ExactInstallerLaunchInput) => Promise; } /** * Phase 06 Admin adapter seam. The lifecycle owns authorization and approval; * later Phase 06 plans replace this pending plan with the isolated Admin * registry/factory implementation without entering the Customer broker. */ export declare function setupHermesAdminAgent(input: SetupHermesAdminAgentInput, options?: HermesAdminAgentOptions): Promise>;