import { mergeOpenCodeConfig } from "./config.js"; import { MemPalaceInstallSummary, MemPalaceMcpPlan } from "./mempalace.js"; import { OfficeCliInstallSummary } from "./officecli.js"; export interface InstallOptions { dryRun: boolean; opencode?: boolean; profile?: InstallProfile; skills?: string[]; skillGroups?: string[]; opencodeHome: string; ailiHome: string; yes?: boolean; setDefaultRose?: boolean; model?: string; forceDefaultAgent?: boolean; forceModel?: boolean; skipOpenCodeConfig?: boolean; enablePlaywright?: boolean; skipPlaywright?: boolean; enableCodegraph?: boolean; skipCodegraph?: boolean; enableGraphify?: boolean; skipGraphify?: boolean; registerGraphifySkill?: boolean; enableOpenspec?: boolean; skipOpenspec?: boolean; skipOfficecli?: boolean; enableOfficecli?: boolean; skipMempalace?: boolean; enableMempalace?: boolean; reconcileRetiredSkills?: boolean; projectRoot?: string; plugins: string[]; json?: boolean; } export type InstallProfile = "default" | "pi" | "opencode"; type OptionalStatus = "configured" | "planned" | "skipped" | "failed" | "unverified"; interface OptionalSummary { status: OptionalStatus; command?: string; reason?: string; recovery?: string; nextStep?: string; } type GraphifyStageStatus = "installed" | "registered" | "planned" | "skipped" | "pending" | "failed" | "conflict"; interface GraphifyStageSummary { status: GraphifyStageStatus; command: string; exitCode?: number | null; reason?: string; observedVersion?: string; path?: string; nextStep?: string; route?: { name: string; location: string; }; } interface GraphifyOperationPacket { command: string; effects: string[]; refusalResult: string; approval: "fresh-exact-separate"; } interface GraphifySummary { ownership: "upstream"; cli: GraphifyStageSummary; globalSkill: GraphifyStageSummary; operations: { cliInstall: GraphifyOperationPacket; globalSkillRegistration: GraphifyOperationPacket; }; inventory: { targetPath: string; versionStampPath: string; referencesPath: string; candidateVersionStampPaths: string[]; existingVersionStampPaths: string[]; ambiguousPaths: string[]; currentProjectOpenCodePath: string; uvToolDirectory?: string; uvBinDirectory?: string; }; } export interface InstallSummary { command: "install" | "update"; dryRun: boolean; profile: InstallProfile; selectedSkills: string[]; ailiHome: string; opencodeHome: string; componentInstall: { status: "planned" | "completed"; scope: "skills" | "pi" | "opencode"; code: number | null; retiredSkillReconciliation: Array<{ name: string; target: string; action: "absent" | "planned-unlink" | "unlinked" | "preserved"; reason: string; }>; }; officecli: OfficeCliInstallSummary; mempalace: MemPalaceInstallSummary; mempalaceMcp: MemPalaceMcpPlan; config: Awaited>; mcp: { playwright: "configured" | "planned" | "skipped"; }; optionalDecisions: Array<{ name: string; status: "configured" | "planned" | "skipped"; nextStep?: string; reason?: string; }>; codegraph: OptionalSummary; graphify: GraphifySummary; openspec: OptionalSummary; externalToolOperations: Array<{ name: "OfficeCLI" | "Playwright" | "CodeGraph" | "Graphify" | "OpenSpec" | "MemPalace"; status: "planned" | "skipped" | "unavailable"; approval: "fresh-exact-separate"; command?: string; reason: string; refusalResult: string; }>; plugins: Array<{ name: string; status: "skipped" | "unverified"; reason: string; source?: string; }>; } export declare function defaultAiliHome(): string; export declare function runInstall(command: "install" | "update", rawOptions: InstallOptions): Promise; export declare function validateOpenCodeHome(opencodeHome: string): string; export declare function validateExactProjectRoot(projectRoot: string): string; export {};