import React from 'react';
import type { Observable } from 'rxjs';
import type { Application } from '../../application';
import type { IServerGroup } from '../../domain';
export interface IServerGroupDetailsWrapperProps {
    app: Application;
    serverGroup: {
        name: string;
        accountId: string;
        region: string;
    };
}
export declare type DetailsGetter = (props: IServerGroupDetailsProps, autoClose: () => void) => Observable<IServerGroup>;
export interface IServerGroupDetailsWrapperState {
    angular: {
        template: string;
        controller: string;
    };
    detailsGetter: DetailsGetter;
    sections: Array<React.ComponentType<IServerGroupDetailsSectionProps>>;
    Actions: React.ComponentType<IServerGroupActionsProps>;
}
export interface IServerGroupActionsProps {
    app: Application;
    serverGroup: IServerGroup;
}
export interface IServerGroupDetailsSectionProps {
    app: Application;
    serverGroup: IServerGroup;
}
export interface IServerGroupDetailsProps extends IServerGroupDetailsWrapperProps {
    Actions: React.ComponentType<IServerGroupActionsProps>;
    detailsGetter: DetailsGetter;
    sections: Array<React.ComponentType<IServerGroupDetailsSectionProps>>;
}
export interface IServerGroupDetailsState {
    loading: boolean;
    serverGroup: IServerGroup;
}
export declare class ServerGroupDetailsWrapper extends React.Component<IServerGroupDetailsWrapperProps, IServerGroupDetailsWrapperState> {
    constructor(props: IServerGroupDetailsWrapperProps);
    private getServerGroupDetailsTemplate;
    componentDidMount(): void;
    componentWillReceiveProps(): void;
    render(): JSX.Element;
}
