/**
 * The names of data centers supported by Azure. Please
 * note that not all Azure Accounts have access to all data centers.
 */
export declare enum DataCenterNames {
    EastAsia = "East Asia",
    SoutheastAsia = "Southeast Asia",
    CentralUS = "Central US",
    EastUS = "East US",
    EastUS2 = "East US 2",
    WestUS = "West US",
    NorthCentralUS = "North Central US",
    SouthCentralUS = "South Central US",
    NorthEurope = "North Europe",
    WestEurope = "West Europe",
    JapanWest = "Japan West",
    JapanEast = "Japan East",
    BrazilSouth = "Brazil South",
    AustraliaEast = "Australia East",
    AustraliaSoutheast = "Australia Southeast",
    SouthIndia = "South India",
    CentralIndia = "Central India",
    WestIndia = "West India",
    CanadaCentral = "Canada Central",
    CanadaEast = "Canada East",
    UKSouth = "UK South",
    UKWest = "UK West",
    WestCentralUS = "West Central US",
    WestUS2 = "West US 2",
    KoreaCentral = "Korea Central",
    KoreaSouth = "Korea South",
}
/**
 * We use the first character of the string value
 * as part of our names so make sure each type has a
 * different first character.
 */
export declare enum DeployType {
    LocalDevelopment = "dev",
    Production = "prod",
}
export declare enum ResourcesWeSupportSettingUp {
    MySqlAzure = "mySqlAzure",
    WebAppNode = "webapp-node",
}
export declare abstract class Resource {
    protected static internalSetup(fileName: string, targetDirectoryPath: string, maximumNameLength: number, isAResourceGroup?: boolean): Promise<void>;
    protected deploymentType: DeployType;
    protected targetDirectoryPath: string;
    protected resourcesInEnvironment: Resource[];
    private baseNameProperty;
    protected initialize(resource: Resource | null, targetDirectoryPath: string): this;
    protected hydrate(resourcesInEnvironment: Resource[], deploymentType: DeployType): Promise<this>;
    readonly baseName: string;
    protected setBaseName(baseName: string): this;
}
