import { type AiSkillTarget, type LifecycleHook, type ModuleMigration, type StackkitManifest, type StackkitModule } from "@berkayorhan/stackkit-schemas"; import { type RunCommand } from "./package-manager.js"; import { type FileConflict, type FilePlan, type ManifestFileRecord } from "./file-plan.js"; export type AddModulesPlan = { schemaVersion: 1; operation: "add"; safe: boolean; refusals: FileConflict[]; modules: StackkitModule[]; modulesToAdd: StackkitModule[]; manifest: StackkitManifest; }; export type RemoveModulesPlan = { schemaVersion: 1; operation: "remove"; safe: boolean; refusals: FileConflict[]; modulesToRemove: string[]; filesToRemove: ManifestFileRecord[]; manifest: StackkitManifest; }; export type ApplyAddModulesInput = { projectDirectory: string; manifest: StackkitManifest; moduleIds: readonly string[]; availableModules: readonly StackkitModule[]; curatedSkillSourceAllowlist?: readonly string[]; skillTargets?: readonly AiSkillTarget[]; runCommand?: RunCommand; }; export type ApplyRemoveModulesInput = { projectDirectory: string; manifest: StackkitManifest; moduleIds: readonly string[]; }; export type ModuleUpdatePlan = { updates: { id: string; from: string; to: string; }[]; }; export type ModuleMigrationPlan = { automatic: ModuleMigration[]; reviewRequired: ModuleMigration[]; manual: ModuleMigration[]; }; export declare function planAddModules(input: { manifest: StackkitManifest; moduleIds: readonly string[]; availableModules: readonly StackkitModule[]; }): AddModulesPlan; export declare function planRemoveModules(input: { manifest: StackkitManifest; moduleIds: readonly string[]; currentFiles: readonly ManifestFileRecord[]; }): RemoveModulesPlan; export declare function readCurrentManagedFileHashes(projectDirectory: string, manifest: StackkitManifest): Promise; export declare function applyAddModules(input: ApplyAddModulesInput): Promise<{ manifest: StackkitManifest; }>; export declare function applyRemoveModules(input: ApplyRemoveModulesInput): Promise<{ manifest: StackkitManifest; }>; export declare function planModuleUpdates(input: { manifestModules: readonly StackkitManifest["modules"][number][]; availableModules: readonly StackkitModule[]; }): ModuleUpdatePlan; export declare function planModuleMigrations(input: { manifest: StackkitManifest; modules: readonly StackkitModule[]; }): ModuleMigrationPlan; export declare function applyAutomaticMigrations(input: { projectDirectory: string; manifest: StackkitManifest; modules: readonly StackkitModule[]; }): Promise<{ manifest: StackkitManifest; }>; export declare function applyModuleUpdates(input: { projectDirectory: string; manifest: StackkitManifest; availableModules: readonly StackkitModule[]; }): Promise<{ manifest: StackkitManifest; updates: ModuleUpdatePlan["updates"]; }>; export declare function planAddModuleFiles(input: { projectDirectory: string; manifest: StackkitManifest; moduleIds: readonly string[]; availableModules: readonly StackkitModule[]; }): Promise; export declare function runLifecycleHooks(hooks: readonly LifecycleHook[], options: { projectDirectory: string; runCommand: RunCommand; }): Promise; //# sourceMappingURL=lifecycle.d.ts.map