import * as IInfrastructure from "./IInfrastructure";
import * as Resource from "./resource";
import ResourceGroup from "./resourcegroup";
export declare class BaseDeployResourceGroupInfrastructure {
    private baseGroup;
    constructor(baseGroup: ResourceGroupInfrastructure);
    readonly deployedResourceGroupName: string;
}
export declare class ResourceGroupInfrastructure extends ResourceGroup implements IInfrastructure.IInfrastructure<BaseDeployResourceGroupInfrastructure> {
    private resourceGroupNameProperty;
    private readonly promiseGate;
    readonly resourceGroupName: string;
    setResourceGroupName(name: string): this;
    initialize(resource: ResourceGroup | null, targetDirectoryPath: string): this;
    setup(): Promise<void>;
    hydrate(resourcesInEnvironment: Resource.Resource[], deploymentType: Resource.DeployType): Promise<this>;
    deployResource(): Promise<this>;
    deleteResource(): Promise<this>;
    getBaseDeployClassInstance(): Promise<BaseDeployResourceGroupInfrastructure>;
}
