import * as cdn from '@pulumi/azure-native/cdn'; import { ResourceInfo } from '../types'; import { Builder, BuilderProps, AFDBuilderEndpoint, ResponseHeaderType, IAFDBuilder } from './types'; /** * AFDBuilder class for creating and configuring Azure Front Door (AFD) resources. * This class implements the Builder pattern for AFD configuration including profiles, * endpoints, custom domains, and response headers. * @extends Builder * @implements IAFDBuilder */ export declare class AFDBuilder extends Builder implements IAFDBuilder { private _name; private _ruleSetRs; private _customDomainRs; private _profileRs; private _endpointRs; private _sdk; private _customDomains; private _endpointArgs; private _responseHeaders; /** * Creates an instance of AFDBuilder. * @param {BuilderProps} props - The arguments for building the AFD. */ constructor(props: BuilderProps); /** * Sets the SKU for the Azure Front Door. * @param {cdn.SkuName} sdk - The SKU to set for the AFD (e.g., Standard_AzureFrontDoor, Premium_AzureFrontDoor). * @returns {IAFDBuilder} The current AFDBuilder instance. */ withSdk(sdk: cdn.SkuName): IAFDBuilder; /** * Sets custom domains for the Azure Front Door. * @param {string[]} domains - Array of custom domain names to associate with the AFD. * @returns {IAFDBuilder} The current AFDBuilder instance. */ withCustomDomains(domains: string[]): IAFDBuilder; /** * Conditionally sets custom domains for the Azure Front Door. * @param {boolean} condition - Whether to apply the custom domains. * @param {string[]} domains - Array of custom domain names to associate with the AFD. * @returns {IAFDBuilder} The current AFDBuilder instance. */ withCustomDomainsIf(condition: boolean, domains: string[]): IAFDBuilder; /** * Sets the endpoint configuration for the Azure Front Door. * @param {AFDBuilderEndpoint} endpoint - The endpoint configuration to set. * @returns {IAFDBuilder} The current AFDBuilder instance. */ withEndpoint(endpoint: AFDBuilderEndpoint): IAFDBuilder; /** * Conditionally sets the endpoint configuration for the Azure Front Door. * @param {boolean} condition - Whether to apply the endpoint configuration. * @param {AFDBuilderEndpoint} endpoint - The endpoint configuration to set. * @returns {IAFDBuilder} The current AFDBuilder instance. */ withEndpointIf(condition: boolean, endpoint: AFDBuilderEndpoint): IAFDBuilder; /** * Sets custom response headers for the Azure Front Door. * @param {ResponseHeaderType} headers - The response headers configuration to set. * @returns {IAFDBuilder} The current AFDBuilder instance. */ withResponseHeaders(headers: ResponseHeaderType): IAFDBuilder; /** * Conditionally sets custom response headers for the Azure Front Door. * @param {boolean} condition - Whether to apply the response headers. * @param {ResponseHeaderType} headers - The response headers configuration to set. * @returns {IAFDBuilder} The current AFDBuilder instance. */ withResponseHeadersIf(condition: boolean, headers: ResponseHeaderType): IAFDBuilder; private buildProfile; private buildCustomDomains; private buildRuleSets; private buildEndpoints; private buildWAF; build(): ResourceInfo; } declare const _default: (props: BuilderProps) => IAFDBuilder; export default _default;