import DomainInfo = require("./domain-info"); import ApiGatewayMap = require("./api-gateway-map"); import DomainConfig = require("./domain-config"); declare abstract class APIGatewayBase { protected abstract readonly versionPrefix: string; abstract createCustomDomain(domain: DomainConfig): Promise; abstract getCustomDomain(domain: DomainConfig, silent?: boolean): Promise; abstract deleteCustomDomain(domain: DomainConfig): Promise; abstract createBasePathMapping(domain: DomainConfig): Promise; abstract getBasePathMappings(domain: DomainConfig): Promise; abstract updateBasePathMapping(domain: DomainConfig): Promise; abstract deleteBasePathMapping(domain: DomainConfig): Promise; /** * Gets the domainNameId for a private custom domain. * Returns undefined for non-private domains or if not found. */ protected getDomainNameIdForPrivateDomain(domain: DomainConfig): Promise; /** * Resolves domainNameId for private domains used in getCustomDomain. * Returns the domainNameId, or undefined if not private. * Returns null to signal the caller should return early (not found). */ protected resolvePrivateDomainNameId(domain: DomainConfig, silent: boolean): Promise; /** * Version-specific: lists domains via API to find the domainNameId for a private domain. */ protected abstract fetchPrivateDomainNameId(domain: DomainConfig): Promise; } export = APIGatewayBase;