/**
 * Resolves CloudFormation stack names for a given configuration
 * Uses the same naming convention as the deploy command to ensure consistency
 */
export declare class StackNameResolver {
    /**
     * Get all stack names for a service/stage
     * Stack naming convention matches the deploy command:
     * - Infra stack: {projectName}-Infra-{stage}
     * - Runtime stack: {projectName}-Runtime-{stage}
     * - Runtime Web stack: {projectName}-RuntimeWeb-{stage}
     */
    static getStackNames(projectName: string, stage: string): {
        infraStack: string;
        runtimeStack: string;
        runtimeWebStack: string;
    };
    /**
     * Get stack names filtered by selection flags
     * Returns only the stacks specified by --only-* flags
     */
    static getSelectedStackNames(projectName: string, stage: string, options: {
        onlyInfra?: boolean;
        onlyRuntime?: boolean;
        onlyRuntimeWeb?: boolean;
    }): string[];
    /**
     * Sanitize stack name to be CloudFormation-compatible
     * CloudFormation stack names must:
     * - Start with a letter
     * - Contain only alphanumeric characters and hyphens
     * - Be less than 128 characters
     *
     * @todo: set common sanitize function instead of code duplicate
     *
     * This matches the sanitization logic used in the deploy command
     */
    private static sanitizeStackName;
    /**
     * Get the destruction order for stacks
     * Stacks must be destroyed in reverse dependency order:
     * 1. Runtime Web stack (depends on Runtime)
     * 2. Runtime stack (depends on Infra)
     * 3. Infra stack (foundational resources)
     *
     * @todo: optimise stack code naming
     * @note: shorten naming is related to high level coordination like infra –> runtime –> runtime-web/others
     *        This naming is valuable for CLI options discovery
     */
    static getDestructionOrder(): Array<'runtime-web' | 'runtime' | 'infra'>;
    /**
     * Get stack type from stack name
     * Extracts the stack type (infra, runtime, runtime-web) from the full stack name
     */
    static getStackType(stackName: string): 'infra' | 'runtime' | 'runtime-web' | null;
}
/**
 * Standalone function to get stack names
 * Exported for use in other modules
 */
export declare function getStackNames(projectName: string, stage: string): {
    infraStack: string;
    runtimeStack: string;
    runtimeWebStack: string;
};
