/**
 * @fileoverview OrdoJS CLI - Deployment adapter manager
 * Manages deployment adapters and provides a plugin architecture
 */
import { DeploymentAdapter, DeploymentConfig, DeploymentResult } from './adapter-interface.js';
/**
 * Deployment adapter manager configuration
 */
export interface AdapterManagerConfig {
    /**
     * Directory to store adapter configurations
     */
    configDir?: string;
    /**
     * Default adapter to use
     */
    defaultAdapter?: string;
}
/**
 * Deployment adapter manager
 * Manages deployment adapters and provides a plugin architecture
 */
export declare class DeploymentAdapterManager {
    /**
     * Registered adapters
     */
    private adapters;
    /**
     * Adapter manager configuration
     */
    private config;
    /**
     * Create a new deployment adapter manager
     * @param config Adapter manager configuration
     */
    constructor(config?: AdapterManagerConfig);
    /**
     * Register a deployment adapter
     * @param adapter Deployment adapter
     */
    registerAdapter(adapter: DeploymentAdapter): void;
    /**
     * Get a deployment adapter by name
     * @param name Adapter name
     * @returns Deployment adapter
     */
    getAdapter(name: string): DeploymentAdapter | undefined;
    /**
     * Get all registered adapters
     * @returns Array of deployment adapters
     */
    getAllAdapters(): DeploymentAdapter[];
    /**
     * Get the default adapter
     * @returns Default deployment adapter
     */
    getDefaultAdapter(): DeploymentAdapter | undefined;
    /**
     * Set the default adapter
     * @param name Adapter name
     */
    setDefaultAdapter(name: string): void;
    /**
     * Load deployment configuration from file
     * @param target Deployment target name
     * @returns Deployment configuration
     */
    loadDeploymentConfig(target: string): Promise<DeploymentConfig>;
    /**
     * Save deployment configuration to file
     * @param target Deployment target name
     * @param config Deployment configuration
     */
    saveDeploymentConfig(target: string, config: DeploymentConfig): Promise<void>;
    /**
     * Prepare deployment using the specified adapter
     * @param adapterName Adapter name
     * @param config Deployment configuration
     * @returns Deployment result
     */
    prepareDeployment(adapterName: string, config: DeploymentConfig): Promise<DeploymentResult>;
    /**
     * Optimize for deployment using the specified adapter
     * @param adapterName Adapter name
     * @param config Deployment configuration
     * @returns Optimization results
     */
    optimizeForDeployment(adapterName: string, config: DeploymentConfig): Promise<any>;
}
//# sourceMappingURL=adapter-manager.d.ts.map