import { ConfigService } from '../../services/config.service';
import { AwsRegionResolver } from '../../utils/aws-region-resolver';
import { RuntimeConfig, StageConfig } from '../../../utils/types/runtime.config';
import { DestroyOptions } from './types';
/**
 * Result of configuration resolution
 */
export interface ConfigResolutionResult {
    /** Loaded configuration */
    config: RuntimeConfig;
    /** Stage configuration */
    stage: StageConfig;
    /** Resolved AWS region */
    region: string;
    /** Resolved AWS profile */
    profile?: string;
    /** Service name extracted from projectName */
    serviceName: string;
    /** Source of region resolution */
    regionSource: 'flag' | 'stage-config' | 'environment' | 'config' | 'default';
    /** Source of profile resolution */
    profileSource?: 'flag' | 'stage-config' | 'environment' | 'none';
}
/**
 * Service for resolving configuration and region for destroy command
 *
 * This service reuses ConfigService and AwsRegionResolver from the deploy command
 * to ensure consistency in configuration loading and region resolution.
 */
export declare class ConfigResolver {
    private configService;
    private regionResolver;
    constructor();
    /**
     * Resolve all configuration for the destroy command
     *
     * This method:
     * 1. Loads runtime.config.ts using ConfigService
     * 2. Validates the stage parameter
     * 3. Resolves the AWS region (with flag override support)
     * 4. Resolves the AWS profile (with flag override support)
     * 5. Extracts the service name from projectName
     *
     * @param options - Destroy command options
     * @param cwd - Current working directory
     * @returns Resolved configuration
     */
    resolve(options: DestroyOptions, cwd?: string): Promise<ConfigResolutionResult>;
    /**
     * Resolve AWS region with flag override support
     *
     * Resolution order (matching deploy command):
     * 1. --region flag (highest priority)
     * 2. Stage configuration (awsRegion field)
     * 3. AWS SDK default provider chain (environment variables, config file)
     * 4. Default region (us-east-1)
     *
     * @param options - Destroy command options
     * @param stage - Stage configuration
     * @returns Resolved region and source
     */
    private resolveRegion;
    /**
     * Resolve AWS profile with flag override support
     *
     * Resolution order:
     * 1. --profile flag (highest priority)
     * 2. Stage configuration (awsProfile field)
     * 3. AWS_PROFILE environment variable
     * 4. None (no profile specified)
     *
     * @param options - Destroy command options
     * @param stage - Stage configuration
     * @returns Resolved profile and source
     */
    private resolveProfile;
    /**
     * Extract service name from projectName field
     *
     * The service name is used to compute stack names and must match
     * the naming convention used by the deploy command.
     *
     * @param config - Runtime configuration
     * @returns Service name
     */
    private extractServiceName;
    /**
     * Get ConfigService instance (for testing)
     */
    getConfigService(): ConfigService;
    /**
     * Get AwsRegionResolver instance (for testing)
     */
    getRegionResolver(): AwsRegionResolver;
}
