import { type Result } from "@fjall/generator"; import { type DeployMode } from "@fjall/util"; import type { DeployOptions, DeployParams, DeployResult } from "../../types/params.js"; import type { ApplicationOperation } from "../../types/operations.js"; import type { DeployServices } from "../serviceFactory.js"; /** * Surface the stacks this operation will mutate (§5.9 reconciler coordinates), * post-plan and before the first mutating CFN op. A reconciler persists these * so a crashed run's in-flight stacks can be located by name/account/region * without waiting for failure output. No-ops when no consumer wired the * callback or the operation touches no stacks (fully skipped re-run). * Shared by the deploy and destroy legs (F-X7) — one emission contract. * Each target carries the stack's own region — the `UsEast1*` stacks live * in us-east-1 whatever the provider's region — so a reconciler's * DescribeStacks lands where the stack is. */ export declare function emitStackTargets(callbacks: DeployParams["callbacks"], services: Pick, appName: string, stackNames: readonly string[]): void; /** * The mode a deploy runs in. An explicit `options.mode` is authoritative; the * derivation keeps legacy callers (imageTag/serviceImageTags ⇒ rollback, * deployOnly ⇒ code-only) working unchanged. The engine body and `deploy()`'s * failure capture both read it here, so the two cannot disagree on what a * rollback is. */ export declare function resolveDeployMode(options: DeployOptions | undefined): DeployMode; /** * Core application deployment orchestration. * * Runs detection, bootstraps AWS, then deploys stacks in order — * parallelising Phase 2 stacks (Storage, Messaging, Database) when possible. */ export declare function deployApplication(params: DeployParams, services: DeployServices, operation: ApplicationOperation): Promise>;