import * as IInfrastructure from "./IInfrastructure";
import * as Resource from "./resource";
import WebappNodeAzure from "./webapp-node-azure";
export declare class BaseDeployWebappNodeAzureInfrastructure {
    private nodeInfra;
    constructor(nodeInfra: WebappNodeAzureInfrastructure);
    getDeployedURL(): Promise<string>;
}
export declare class WebappNodeAzureInfrastructure extends WebappNodeAzure implements IInfrastructure.IInfrastructure<BaseDeployWebappNodeAzureInfrastructure> {
    webAppServicePlanName: string;
    webAppDNSName: string;
    private readonly promiseGate;
    initialize(resource: WebappNodeAzure | null, targetDirectoryPath: string): this;
    setup(): Promise<void>;
    hydrate(resourcesInEnvironment: Resource.Resource[], deploymentType: Resource.DeployType): Promise<this>;
    deployResource(developmentDeploy?: boolean): Promise<this>;
    getBaseDeployClassInstance(): Promise<BaseDeployWebappNodeAzureInfrastructure>;
    private deployToDev(storagePromisesToWaitFor, aiKeyId);
    private deployToProduction(developmentDeploy, storagePromisesToWaitFor, aiKeyId);
    /**
     * Handles copying the local web app code to Azure
     * @developmentDeploy This is only used for development of sleeveforarm,
     * it lets us know we need to deploy to the webapp a development version
     * of sleeveforarm.
     */
    private deployToWebApp(developmentDeploy?);
    /**
     * Deploys a development version of SleeveForArm
     */
    private developDeployToWebApp(gitCloneDepotPath);
}
