import type { ServiceDeploymentBriefInfo } from "../../services/infrastructure/ecsServiceDeployments.js"; import type { EcsRollbackStatus } from "../../types/ecsRollbackVerdict.js"; /** How a service deployment ended, or that it has not yet. */ export type ServiceDeploymentOutcome = "succeeded" | "rolled-back" | "stopped" | "in-flight"; /** * The bucket a status reads into. A status this SDK does not name, or none, * reads as still in flight: it never counts as a rollback, so it never * authorises a cancel. */ export declare function serviceDeploymentOutcome(status: string | undefined): ServiceDeploymentOutcome; /** Whether ECS reports that it rolled the deployment back. */ export declare function isRollbackStatus(status: string | undefined): status is EcsRollbackStatus; /** * What a service deployment's status says of whether ECS rolled it back: * `rollback` once ECS reports one, requested, running or ended; * `no-rollback` once it succeeded or ECS stopped it, whether a later * deployment superseded it or its circuit breaker tripped with rollback * off; `unsaid` while it is pending or in progress. */ export type EcsRollbackReading = "rollback" | "no-rollback" | "unsaid"; /** The reading of a status; one this SDK does not name, or none, is `unsaid`. */ export declare function ecsRollbackReading(status: string | undefined): EcsRollbackReading; /** * The service deployment an update that began at `updateStartedAt` started, * whether CloudFormation's or a lane's own `UpdateService`: the earliest * created at or after it, less the clock tolerance. ECS's own circuit-breaker * or hook rollback is a status of that same deployment, while a later * `UpdateService` (the stack rollback after a cancel, say) creates a later * deployment, so the earliest is the update's. A deployment ECS reports * without a creation time is never chosen. */ export declare function serviceDeploymentStartedAt(deployments: readonly ServiceDeploymentBriefInfo[], updateStartedAt: Date, skewMs: number): ServiceDeploymentBriefInfo | undefined;