/** * Pure CloudFormation deploy-progress counting, shared by the CLI Ink progress * box and the webapp deployment panel so both quantify a deploy identically. * * Operates on raw CloudFormation resource-status strings — no AWS SDK, no React, * no Node — so it is safe to import from a browser bundle. */ export interface ResourceProgressCounts { /** Resources at a terminal `_COMPLETE` status that is not a rollback. */ completed: number; /** Resources currently `_IN_PROGRESS`. */ inProgress: number; /** Resources at a `_FAILED` or `ROLLBACK` status. */ failed: number; /** Total resources seen. */ total: number; /** * Completed / total as a 0–100 integer. `0` when nothing has been seen. * Callers that track a terminal "stack complete" / "empty stack" state may * override this to 100 — this is the raw count-derived figure only. */ percentage: number; } /** * Count completed / in-progress / failed resources from their CloudFormation * status strings and derive a percentage. Matches the CLI's long-standing * `useStackOperationState` derivation: a resource counts as complete when its * status includes `COMPLETE` and not `ROLLBACK`. */ export declare function countResourceProgress(statuses: Iterable): ResourceProgressCounts; /** * Format a wall-clock elapsed duration as `Hh Mm Ss` / `Mm Ss` / `Ss`, dropping * leading zero units. Used for the live "elapsed" clock on both surfaces. */ export declare function formatElapsed(ms: number): string;