import type { DeployCallbacks } from "../../types/callbacks.js"; import type { ECSCompleteEvent } from "../../types/events.js"; import type { DeployServices } from "../serviceFactory.js"; import type { StackAtRest } from "../../aws/utils/stackOperationRead.js"; import { type UpdateAnchor } from "../../aws/utils/stackOperationOutcome.js"; import { type RollbackRestoreSet } from "./rollbackRestore.js"; import { type HoldFacts } from "./rollbackHoldMessages.js"; import type { RollbackHold, RollbackHoldContext } from "./rollbackHold.js"; /** * The hold once the stack is at rest. A stack that completed the update and * declares the rolled tag for every rolled key it declares (at least one) is * reconciled; a key it does not declare is one the update could never set, * and is warned of as the reconcile warns of it. Under any other status the * parameters prove nothing, and what runs is read. A moved entity is put * back only when CloudFormation's rollback of this update logged an event * for it; any other move, and anything unread, fails the hold with nothing * written for it. So does CloudFormation's rollback of the update failing, * since continuing it can move what it could not roll back. */ export declare function holdAtRest(services: DeployServices, restoreSet: RollbackRestoreSet, facts: HoldFacts, anchor: UpdateAnchor | undefined, rest: Extract, context: RollbackHoldContext): Promise; /** Today's warning for rolled keys whose image-tag parameter the stack does not declare. */ export declare function warnSkippedKeys(callbacks: DeployCallbacks, stackName: string, skippedKeys: readonly string[]): void; export declare function cancelled(callbacks: DeployCallbacks, warning: string): RollbackHold; export declare function notHeld(message: string, ecsFailure?: ECSCompleteEvent): RollbackHold;