import * as pulumi from '@pulumi/pulumi';
import * as awsx from '@pulumi/awsx';
import { EcsService } from '../ecs-service';
import { WebServer } from '.';
import { OtelCollector } from '../../otel';
export declare namespace WebServerBuilder {
    type EcsConfig = Omit<WebServer.EcsConfig, 'vpc' | 'volumes'>;
}
export declare class WebServerBuilder {
    private _name;
    private _container?;
    private _vpc?;
    private _ecsConfig?;
    private _domain?;
    private _hostedZoneId?;
    private _certificate?;
    private _healthCheckPath?;
    private _healthCheckConfig?;
    private _loadBalancingAlgorithmType?;
    private _otelCollector?;
    private _initContainers;
    private _sidecarContainers;
    private _volumes;
    constructor(name: string);
    withContainer(image: WebServer.Container['image'], port: WebServer.Container['port'], config?: Omit<WebServer.Container, 'image' | 'port'>): this;
    withEcsConfig(config: WebServerBuilder.EcsConfig): this;
    withVpc(vpc: pulumi.Input<awsx.ec2.Vpc>): this;
    withVolume(volume: EcsService.PersistentStorageVolume): this;
    withCustomDomain(domain: pulumi.Input<string>, hostedZoneId: pulumi.Input<string>): this;
    withCertificate(certificate: WebServer.Args['certificate'], hostedZoneId: pulumi.Input<string>, domain?: pulumi.Input<string>): this;
    addInitContainer(container: WebServer.InitContainer): this;
    addSidecarContainer(container: WebServer.SidecarContainer): this;
    withOtelCollector(collector: OtelCollector): this;
    withHealthCheck(path: WebServer.LoadBalancerConfig['healthCheckPath'], config?: WebServer.LoadBalancerConfig['healthCheckConfig']): this;
    withLoadBalancingAlgorithm(algorithm: WebServer.LoadBalancerConfig['loadBalancingAlgorithmType']): this;
    build(opts?: pulumi.ComponentResourceOptions): WebServer;
}
//# sourceMappingURL=builder.d.ts.map