import React from 'react';
import type { Option } from 'react-select';
import type { IDeploymentStrategy, IDeploymentStrategyAdditionalFieldsProps } from './deploymentStrategy.registry';
import type { IServerGroupCommand } from '../serverGroup';
export interface IDeploymentStrategySelectorProps {
    command: IServerGroupCommand;
    onFieldChange: (key: string, value: any) => void;
    onStrategyChange: (command: IServerGroupCommand, strategy: IDeploymentStrategy) => void;
    labelColumns?: string;
    fieldColumns?: string;
}
export interface IDeploymentStrategySelectorState {
    strategies: IDeploymentStrategy[];
    currentStrategy: string;
    AdditionalFieldsComponent: React.ComponentType<IDeploymentStrategyAdditionalFieldsProps>;
}
export declare class DeploymentStrategySelector extends React.Component<IDeploymentStrategySelectorProps, IDeploymentStrategySelectorState> {
    static defaultProps: Partial<IDeploymentStrategySelectorProps>;
    state: IDeploymentStrategySelectorState;
    selectStrategy(strategy: string, onMount?: boolean): void;
    strategyChanged: (option: Option<IDeploymentStrategy>) => void;
    componentDidMount(): void;
    render(): JSX.Element;
    private strategyOptionRenderer;
}
