import { type Result } from "@fjall/generator"; import { type ApplicationStack } from "../../types/operations.js"; import { ApplicationError, type StackDeploymentData } from "../../types/application/ApplicationServiceTypes.js"; import type { CloudFormationService } from "../infrastructure/CloudFormationService.js"; import type { DeployCallbacks } from "../../types/callbacks.js"; import type { DeployParams } from "../../types/params.js"; import { type LeaseDeniedError } from "../../orchestration/application/leaseGate.js"; /** What the destroy lane threads into the not-found reconcile. */ export interface NotFoundDestroyReconcileOptions { abortSignal?: AbortSignal; onLog?: DeployCallbacks["onLog"]; assertLeaseForStack?: DeployParams["assertLeaseForStack"]; /** The deploy target's region — names the region in the operator cure only. */ targetRegion?: string; } /** * Settle a per-stack CDK destroy result that reports the stack missing. * CDK says "no stacks match" for any stack its assembly no longer * synthesises (`logging: false` after a logged deploy, a removed pattern), * and for the two `UsEast1*` stacks it was never looking in the right * region — so its word alone would skip a live stack and orphan it. A * state-listed stack is probed in its own region before "already deleted" * is believed: absent → skipped; present → deleted through the SDK under * the lease the caller already asserted (re-consulted here, immediately * before the DeleteStack); unreadable → fail closed, nothing deleted. */ export declare function reconcileNotFoundDestroyResult(result: Result, stackType: ApplicationStack, appName: string, cfnService: CloudFormationService, options?: NotFoundDestroyReconcileOptions): Promise>;