import { type Plan } from "../internals/plan.js"; import { ECC_MCP_DISABLED, type EccMcpProjection } from "./mcp-profile.js"; export declare const SERENA_RUNTIME_PYPROJECT_SHA256 = "755b08fb0271d68f7e8fcc9eb6e823b95d3688a6cb1d3f693c13cde2cade7897"; export declare const SERENA_RUNTIME_UV_LOCK_SHA256 = "cd73b07cbc10dc932021f741033a88219b86272b05223d06d9820dc6109309b4"; export declare const SERENA_DEPENDENCY_LOCK_SHA256 = "623c83ede4efc2b1afc8534d60638871556d95cd685db218714379cfdba0104e"; interface RuntimeFileIdentity { path: string; sha256: string; } interface NativeCommandHook { type: "command"; command: string; commandWindows?: string; timeout: number; statusMessage: string; } interface NativeHookGroup { hooks: [NativeCommandHook]; } interface NativeHooks { description: string; hooks: Record; } export interface NativeEccRegistrationInput { root: string; stateRoot: string; executable: string; cliScript: string; /** Override only for hermetic package-layout tests; production discovers the packaged lock. */ serenaRuntimeRoot?: string; } export interface NativeEccRegistration { version: 1; root: string; stateRoot: string; runtime: { executable: RuntimeFileIdentity; cliScript: RuntimeFileIdentity; serena: { root: string; pyproject: RuntimeFileIdentity; uvLock: RuntimeFileIdentity; aggregateSha256: string; }; }; hooks: { claude: NativeHooks; codex: NativeHooks; }; mcp: { claude: { mcpServers: Record; }; codexToml: string; disabled: typeof ECC_MCP_DISABLED; serenaConfig: string; provenance: EccMcpProjection["provenance"]; }; } export interface NativeRegistrationFile { destination: ".claude/settings.json" | ".mcp.json" | ".codex/hooks.json" | ".codex/config.toml"; ownership: "json-array-children" | "json-object-children" | "toml-block"; content: string; normalizedSha256: string; } export declare const NATIVE_ECC_REGISTRATION_RECEIPT = ".aih/ecc-profile/native-registration-v1.json"; export declare const NATIVE_ECC_REGISTRATION_SCOPE = "ecc-native-registration"; export declare function buildNativeEccRegistration(input: NativeEccRegistrationInput): NativeEccRegistration; export declare function nativeRegistrationFiles(registration: NativeEccRegistration): NativeRegistrationFile[]; export declare function planNativeEccRegistration(root: string, registration: NativeEccRegistration, operation: "install" | "update" | "repair" | "rollback" | "uninstall"): Plan; export declare function planInstalledNativeEccRegistration(root: string, operation: "repair" | "rollback" | "uninstall"): Plan; export {};