import { ResourceBase, ResourceTag as Inner_ResourceTag } from "../../resource";
import { Value, List } from "../../data-types";
export declare class ClientAuthenticationRequest {
    MutualAuthentication?: CertificateAuthenticationRequest;
    Type: Value<string>;
    ActiveDirectory?: DirectoryServiceAuthenticationRequest;
    constructor(properties: ClientAuthenticationRequest);
}
export declare class CertificateAuthenticationRequest {
    ClientRootCertificateChainArn: Value<string>;
    constructor(properties: CertificateAuthenticationRequest);
}
export declare class DirectoryServiceAuthenticationRequest {
    DirectoryId: Value<string>;
    constructor(properties: DirectoryServiceAuthenticationRequest);
}
export declare class TagSpecification {
    ResourceType: Value<string>;
    Tags: List<Inner_ResourceTag>;
    constructor(properties: TagSpecification);
}
export declare class ConnectionLogOptions {
    CloudwatchLogStream?: Value<string>;
    Enabled: Value<boolean>;
    CloudwatchLogGroup?: Value<string>;
    constructor(properties: ConnectionLogOptions);
}
export interface ClientVpnEndpointProperties {
    TransportProtocol?: Value<string>;
    SplitTunnel?: Value<boolean>;
    VpcId?: Value<string>;
    AuthenticationOptions: List<ClientAuthenticationRequest>;
    DnsServers?: List<Value<string>>;
    ServerCertificateArn: Value<string>;
    TagSpecifications?: List<TagSpecification>;
    ClientCidrBlock: Value<string>;
    VpnPort?: Value<number>;
    ConnectionLogOptions: ConnectionLogOptions;
    SecurityGroupIds?: List<Value<string>>;
    Description?: Value<string>;
}
export default class Inner_ClientVpnEndpoint extends ResourceBase<ClientVpnEndpointProperties> {
    static ClientAuthenticationRequest: typeof ClientAuthenticationRequest;
    static CertificateAuthenticationRequest: typeof CertificateAuthenticationRequest;
    static DirectoryServiceAuthenticationRequest: typeof DirectoryServiceAuthenticationRequest;
    static TagSpecification: typeof TagSpecification;
    static ConnectionLogOptions: typeof ConnectionLogOptions;
    constructor(properties: ClientVpnEndpointProperties);
}
