/** * Shared uninstall command workflow orchestration. * * Defines the `UninstallExtensionCommandWorkflowActions` interface and * `runUninstallCommandWorkflow` function shared by all uninstall command handlers. * * @experimental This API is unstable and may change without notice. */ import * as Effect from "effect/Effect"; import type { AppError } from "../../app-error/index.js"; import type { Plan } from "../../plan/plan.js"; import type { OperationResolution } from "../../plan/operation-resolution.js"; import type { PlanExecution } from "../../cli-runtime/confirmation-recovery.js"; /** * Type-specific actions for uninstall command workflows. * * Each extension type provides its own implementation of these actions. * The generic type parameters allow full type safety per extension type. * * @typeParam Args - Raw command arguments from the active CLI parser * @typeParam Parsed - Parsed/validated arguments * @typeParam Intent - Command-specific uninstall intent */ export interface UninstallExtensionCommandWorkflowActions { readonly parseArgs: (args: Args) => Effect.Effect; readonly finalizeIntent: (parsed: Parsed) => Effect.Effect; readonly buildUninstallPlan: (intent: Intent, flags: UninstallWorkflowFlags) => Effect.Effect; } export interface UninstallWorkflowFlags { readonly execution: PlanExecution; /** Optional delayed gate; candidate freshness is checked again after it completes. */ readonly beforeApply?: () => Effect.Effect; } /** * Run the canonical uninstall command workflow. * * Executes phases in order: parse -> finalizeIntent -> buildUninstallPlan -> * previewOrApplyPlan. */ export declare const runUninstallCommandWorkflow: (args: Args, actions: UninstallExtensionCommandWorkflowActions, flags: UninstallWorkflowFlags) => Effect.Effect, AppError, import("effect/Path").Path | import("effect/FileSystem").FileSystem | import("../../workspace/service-interface.ts").WorkspaceMutations | import("../../cli-renderer/cli-renderer.ts").CliRenderer | import("../../cli-flags/verbosity.ts").Verbosity | import("../../workspace/resolve-plan-interaction.ts").ResolvePlanInteraction>; //# sourceMappingURL=workflow.d.ts.map