/**
 * Stack Name Sanitization Utility
 *
 * Provides utilities for sanitizing and validating AWS CloudFormation stack names
 * to ensure compliance with AWS naming requirements.
 *
 * AWS CloudFormation stack name rules:
 * - Must contain only alphanumeric characters (a-z, A-Z, 0-9) and hyphens (-)
 * - Must start with an alphabetic character
 * - Cannot end with a hyphen
 * - Maximum 128 characters
 */
/**
 * Result of stack name sanitization with metadata
 */
export interface StackNameSanitizationResult {
    /**
     * The sanitized stack name, safe for AWS CloudFormation
     */
    sanitized: string;
    /**
     * Whether the name was modified during sanitization
     */
    wasModified: boolean;
    /**
     * The original name before sanitization
     */
    originalName: string;
}
/**
 * Sanitizes a project name to be AWS CloudFormation stack name compliant
 *
 * @param name - Original project name
 * @param options
 * @returns Sanitized stack name that conforms to AWS requirements
 *
 * @example
 * sanitizeStackName('runtime_qa7') // Returns: 'runtime-qa7'
 * sanitizeStackName('RuntimeQA7') // Returns: 'RuntimeQA7'
 * sanitizeStackName('Runtime.QA7') // Returns: 'Runtime-QA7'
 * sanitizeStackName('123-project') // Returns: 'App-123-project'
 * sanitizeStackName('123.project') // Returns: 'App-123-project'
 */
export declare function sanitizeStackName(name: string, options?: {
    lambda: boolean;
    prefix: string;
}): string;
/**
 * Validates if a name is AWS CloudFormation stack name compliant
 *
 * @param name - Stack name to validate
 * @returns true if the name is valid, false otherwise
 *
 * @example
 * isValidStackName('Runtime-qa7') // Returns: true
 * isValidStackName('runtime_qa7') // Returns: false (contains underscore)
 * isValidStackName('123-project') // Returns: false (starts with number)
 * isValidStackName('RuntimeQA7') // Returns: true
 */
export declare function isValidStackName(name: string): boolean;
/**
 * Sanitizes a project name with detailed result information
 *
 * @param name - Original project name
 * @returns Sanitization result with metadata
 *
 * @example
 * sanitizeStackNameWithDetails('runtime_qa7')
 * // Returns: { sanitized: 'runtime-qa7', wasModified: true, originalName: 'runtime_qa7' }
 *
 * sanitizeStackNameWithDetails('Runtime-qa7')
 * // Returns: { sanitized: 'Runtime-qa7', wasModified: false, originalName: 'Runtime-qa7' }
 */
export declare function sanitizeStackNameWithDetails(name: string): StackNameSanitizationResult;
