import type React from 'react';
import type { IServerGroupCommand } from '../serverGroup';
export interface IDeploymentStrategyAdditionalFieldsProps {
    command: IServerGroupCommand;
    onChange: (key: string, value: any) => void;
}
export interface IDeploymentStrategy {
    key: string;
    label: string;
    description: string;
    providerRestricted?: boolean;
    additionalFields?: string[];
    additionalFieldsTemplateUrl?: string;
    AdditionalFieldsComponent?: React.ComponentType<IDeploymentStrategyAdditionalFieldsProps>;
    initializationMethod?: (command: any) => void;
}
export declare class DeploymentStrategyRegistrar {
    private strategies;
    private providerRegistry;
    registerStrategy(strategy: IDeploymentStrategy): void;
    listStrategies(cloudProvider: string): IDeploymentStrategy[];
    registerProvider(provider: string, strategies: string[]): void;
    getStrategy(key: string): IDeploymentStrategy;
    private configureProviderRegistryEntry;
}
export declare const DeploymentStrategyRegistry: DeploymentStrategyRegistrar;
