import { type StepDefinition, type StepDeploymentType, type Operation, type StepContext } from "../types/index.js"; import type { AppResourceFlags } from "../types/index.js"; import type { PatternType } from "@fjall/generator"; /** * The destroy step id for a stack type: the registered id for an * `ApplicationStack`, the historic `${lowercase}-destroy` for anything else. */ export declare function getDestroyStepId(stackType: string): string; /** * Step registry providing step filtering and registry logic. * Step definitions (STEP_IDS, STEP_NAMES, StepDefinition, StepContext) * live in types/stepDefinitions.ts — the single source of truth. * * This class was moved from CLI to deploy-core so both CLI and webapp * can use the same step registry. */ export declare class StepRegistry { /** * Unified deployment steps for ALL deployment types * Key format: "{deploymentType}-{operation}" */ private static readonly DEPLOYMENT_STEPS; /** * Get filtered steps based on deployment context * This is the SINGLE method for getting steps for ANY deployment */ static getSteps(context: StepContext): StepDefinition[]; /** * Get step names for UI display */ static getStepNames(context: StepContext): string[]; /** * Get the index of a specific step in the filtered list */ static getStepIndex(stepId: string, context: StepContext): number; /** * Get a step by ID from all steps */ static getStepById(stepId: string, deploymentType?: StepDeploymentType): StepDefinition | undefined; /** * Check if a step should be included based on context */ static isStepIncluded(stepId: string, context: StepContext): boolean; /** * Convenience method for creating context */ static createContext(deploymentType: StepDeploymentType, operation: Operation, options?: { deployOnly?: boolean; infraOnly?: boolean; isManagedAccount?: boolean; hasDockerfile?: boolean; pattern?: PatternType | null; builderName?: string; resources?: AppResourceFlags; }): StepContext; /** * Get all deployment types */ static getDeploymentTypes(): StepDeploymentType[]; /** * Get stack names for a deployment type */ static getStackNames(deploymentType: StepDeploymentType): string[]; /** * Get infrastructure step IDs for skipping */ static getInfraStepIds(): string[]; /** * Get Docker step IDs for skipping */ static getDockerStepIds(): string[]; }