/**
 * Configuration factory for SFCC MCP Server
 *
 * Centralized configuration management with validation and defaults.
 * This factory creates SFCCConfig objects from various sources while
 * leveraging secure file loading from the config module.
 */
import { SFCCConfig, DwJsonConfig } from '../types/types.js';
export declare class ConfigurationFactory {
    /**
     * Create configuration from various sources with proper validation
     */
    static create(options: {
        dwJsonPath?: string;
        hostname?: string;
        username?: string;
        password?: string;
        clientId?: string;
        clientSecret?: string;
        siteId?: string;
    }): SFCCConfig;
    /**
     * Load configuration from dw.json file using secure file loading
     *
     * @param dwJsonPath - Path to the dw.json file
     * @returns Parsed dw.json configuration
     * @throws Error if file cannot be loaded or is invalid
     */
    private static loadFromDwJson;
    /**
     * Map dw.json structure to SFCCConfig
     *
     * Transforms the dw.json format (with kebab-case properties) to the
     * internal SFCCConfig format (with camelCase properties).
     *
     * @param dwConfig - The parsed dw.json configuration
     * @returns Mapped SFCCConfig object
     */
    static mapDwJsonToConfig(dwConfig: DwJsonConfig): SFCCConfig;
    /**
     * Validate configuration for different operating modes
     *
     * This validation supports both documentation-only mode (no credentials required)
     * and full mode (credentials required for API access).
     *
     * @param config - The configuration to validate
     * @throws Error if configuration is invalid for any supported mode
     */
    private static validate;
    /**
     * Check if configuration supports specific features
     *
     * This method analyzes the provided configuration to determine what
     * capabilities are available based on the credentials and hostname provided.
     *
     * @param config - The configuration to analyze
     * @returns Object describing available capabilities
     */
    static getCapabilities(config: SFCCConfig): {
        canAccessLogs: boolean;
        canAccessOCAPI: boolean;
        canAccessWebDAV: boolean;
        isLocalMode: boolean;
    };
    /**
     * Create a configuration for local development mode
     *
     * This creates a minimal configuration that only provides access to
     * documentation and best practices without requiring any SFCC credentials.
     *
     * @returns Configuration for local/documentation-only mode
     */
    static createLocalMode(): SFCCConfig;
}
//# sourceMappingURL=configuration-factory.d.ts.map