import CloudFormationWrapper = require("./aws/cloud-formation-wrapper"); import S3Wrapper = require("./aws/s3-wrapper"); import DomainConfig = require("./models/domain-config"); import { ServerlessInstance, ServerlessOptions, ServerlessUtils } from "./types"; import APIGatewayV1Wrapper = require("./aws/api-gateway-v1-wrapper"); import APIGatewayV2Wrapper = require("./aws/api-gateway-v2-wrapper"); import APIGatewayBase = require("./models/apigateway-base"); declare class ServerlessCustomDomain { apiGatewayV1Wrapper: APIGatewayV1Wrapper; apiGatewayV2Wrapper: APIGatewayV2Wrapper; cloudFormationWrapper: CloudFormationWrapper; s3Wrapper: S3Wrapper; serverless: ServerlessInstance; options: ServerlessOptions; commands: object; hooks: object; domains: DomainConfig[]; constructor(serverless: ServerlessInstance, options: ServerlessOptions, v3Utils?: ServerlessUtils); /** * Wrapper for lifecycle function, initializes variables and checks if enabled. * @param lifecycleFunc lifecycle function that actually does desired action */ hookWrapper(lifecycleFunc: any): Promise; /** * Validate if the plugin config exists */ validateConfigExists(): void; /** * Goes through custom domain property and initializes local variables and cloudformation template */ initializeVariables(): void; /** * Validates domain configs to make sure they are valid, ie HTTP api cannot be used with EDGE domain */ validateDomainConfigs(): void; /** * Init AWS credentials based on sls `provider.profile` */ initSLSCredentials(): Promise; /** * Init AWS current region based on Node options */ initAWSRegion(): Promise; /** * Setup AWS resources */ initAWSResources(): Promise; getApiGateway(domain: DomainConfig): APIGatewayBase; /** * Lifecycle function to create a domain * Wraps creating a domain and resource record set */ createDomains(): Promise; /** * Lifecycle function to create a domain * Wraps creating a domain and resource record set */ createDomain(domain: DomainConfig): Promise; /** * Lifecycle function to delete a domain * Wraps deleting a domain and resource record set */ deleteDomains(): Promise; /** * Wraps deleting a domain and resource record set */ deleteDomain(domain: DomainConfig): Promise; /** * Lifecycle function to createDomain before deploy and add domain info to the CloudFormation stack's Outputs */ createOrGetDomainForCfOutputs(): Promise; /** * Lifecycle function to create basepath mapping * Wraps creation of basepath mapping and adds domain name info as output to cloudformation stack */ setupBasePathMappings(): Promise; /** * Lifecycle function to delete basepath mapping * Wraps deletion of basepath mapping */ removeBasePathMappings(): Promise; /** * Lifecycle function to print domain summary * Wraps printing of all domain manager related info */ domainSummaries(): Promise; /** * Adds the domain name and distribution domain name to the CloudFormation outputs */ addOutputs(domain: DomainConfig): void; } export = ServerlessCustomDomain;