import { ResourceBase, ResourceTag as Inner_ResourceTag } from "../../resource";
import { Value, List } from "../../data-types";
export declare class ListenerTlsAcmCertificate {
    CertificateArn: Value<string>;
    constructor(properties: ListenerTlsAcmCertificate);
}
export declare class Backend {
    VirtualService?: VirtualServiceBackend;
    constructor(properties: Backend);
}
export declare class ListenerTlsCertificate {
    ACM?: ListenerTlsAcmCertificate;
    File?: ListenerTlsFileCertificate;
    constructor(properties: ListenerTlsCertificate);
}
export declare class Listener {
    HealthCheck?: HealthCheck;
    TLS?: ListenerTls;
    PortMapping: PortMapping;
    constructor(properties: Listener);
}
export declare class ListenerTlsFileCertificate {
    PrivateKey: Value<string>;
    CertificateChain: Value<string>;
    constructor(properties: ListenerTlsFileCertificate);
}
export declare class TlsValidationContextTrust {
    ACM?: TlsValidationContextAcmTrust;
    File?: TlsValidationContextFileTrust;
    constructor(properties: TlsValidationContextTrust);
}
export declare class ClientPolicyTls {
    Validation: TlsValidationContext;
    Enforce?: Value<boolean>;
    Ports?: List<Value<number>>;
    constructor(properties: ClientPolicyTls);
}
export declare class TlsValidationContext {
    Trust: TlsValidationContextTrust;
    constructor(properties: TlsValidationContext);
}
export declare class ServiceDiscovery {
    DNS?: DnsServiceDiscovery;
    AWSCloudMap?: AwsCloudMapServiceDiscovery;
    constructor(properties: ServiceDiscovery);
}
export declare class Logging {
    AccessLog?: AccessLog;
    constructor(properties: Logging);
}
export declare class AwsCloudMapServiceDiscovery {
    NamespaceName: Value<string>;
    ServiceName: Value<string>;
    Attributes?: List<AwsCloudMapInstanceAttribute>;
    constructor(properties: AwsCloudMapServiceDiscovery);
}
export declare class AccessLog {
    File?: FileAccessLog;
    constructor(properties: AccessLog);
}
export declare class TlsValidationContextFileTrust {
    CertificateChain: Value<string>;
    constructor(properties: TlsValidationContextFileTrust);
}
export declare class ClientPolicy {
    TLS?: ClientPolicyTls;
    constructor(properties: ClientPolicy);
}
export declare class FileAccessLog {
    Path: Value<string>;
    constructor(properties: FileAccessLog);
}
export declare class DnsServiceDiscovery {
    Hostname: Value<string>;
    constructor(properties: DnsServiceDiscovery);
}
export declare class BackendDefaults {
    ClientPolicy?: ClientPolicy;
    constructor(properties: BackendDefaults);
}
export declare class ListenerTls {
    Mode: Value<string>;
    Certificate: ListenerTlsCertificate;
    constructor(properties: ListenerTls);
}
export declare class AwsCloudMapInstanceAttribute {
    Value: Value<string>;
    Key: Value<string>;
    constructor(properties: AwsCloudMapInstanceAttribute);
}
export declare class VirtualNodeSpec {
    Logging?: Logging;
    Backends?: List<Backend>;
    Listeners?: List<Listener>;
    BackendDefaults?: BackendDefaults;
    ServiceDiscovery?: ServiceDiscovery;
    constructor(properties: VirtualNodeSpec);
}
export declare class VirtualServiceBackend {
    ClientPolicy?: ClientPolicy;
    VirtualServiceName: Value<string>;
    constructor(properties: VirtualServiceBackend);
}
export declare class HealthCheck {
    Path?: Value<string>;
    UnhealthyThreshold: Value<number>;
    Port?: Value<number>;
    HealthyThreshold: Value<number>;
    TimeoutMillis: Value<number>;
    Protocol: Value<string>;
    IntervalMillis: Value<number>;
    constructor(properties: HealthCheck);
}
export declare class TlsValidationContextAcmTrust {
    CertificateAuthorityArns: List<Value<string>>;
    constructor(properties: TlsValidationContextAcmTrust);
}
export declare class PortMapping {
    Port: Value<number>;
    Protocol: Value<string>;
    constructor(properties: PortMapping);
}
export interface VirtualNodeProperties {
    MeshName: Value<string>;
    MeshOwner?: Value<string>;
    Spec: VirtualNodeSpec;
    VirtualNodeName: Value<string>;
    Tags?: List<Inner_ResourceTag>;
}
export default class Inner_VirtualNode extends ResourceBase<VirtualNodeProperties> {
    static ListenerTlsAcmCertificate: typeof ListenerTlsAcmCertificate;
    static Backend: typeof Backend;
    static ListenerTlsCertificate: typeof ListenerTlsCertificate;
    static Listener: typeof Listener;
    static ListenerTlsFileCertificate: typeof ListenerTlsFileCertificate;
    static TlsValidationContextTrust: typeof TlsValidationContextTrust;
    static ClientPolicyTls: typeof ClientPolicyTls;
    static TlsValidationContext: typeof TlsValidationContext;
    static ServiceDiscovery: typeof ServiceDiscovery;
    static Logging: typeof Logging;
    static AwsCloudMapServiceDiscovery: typeof AwsCloudMapServiceDiscovery;
    static AccessLog: typeof AccessLog;
    static TlsValidationContextFileTrust: typeof TlsValidationContextFileTrust;
    static ClientPolicy: typeof ClientPolicy;
    static FileAccessLog: typeof FileAccessLog;
    static DnsServiceDiscovery: typeof DnsServiceDiscovery;
    static BackendDefaults: typeof BackendDefaults;
    static ListenerTls: typeof ListenerTls;
    static AwsCloudMapInstanceAttribute: typeof AwsCloudMapInstanceAttribute;
    static VirtualNodeSpec: typeof VirtualNodeSpec;
    static VirtualServiceBackend: typeof VirtualServiceBackend;
    static HealthCheck: typeof HealthCheck;
    static TlsValidationContextAcmTrust: typeof TlsValidationContextAcmTrust;
    static PortMapping: typeof PortMapping;
    constructor(properties: VirtualNodeProperties);
}
