import { ResourceBase, ResourceTag as Inner_ResourceTag } from "../../resource";
import { Value, List, MapOf } from "../../data-types";
export declare class ZoneAwarenessConfig {
    AvailabilityZoneCount?: Value<number>;
    constructor(properties: ZoneAwarenessConfig);
}
export declare class LogPublishingOption {
    CloudWatchLogsLogGroupArn?: Value<string>;
    Enabled?: Value<boolean>;
    constructor(properties: LogPublishingOption);
}
export declare class ElasticsearchClusterConfig {
    DedicatedMasterCount?: Value<number>;
    DedicatedMasterEnabled?: Value<boolean>;
    DedicatedMasterType?: Value<string>;
    InstanceCount?: Value<number>;
    InstanceType?: Value<string>;
    ZoneAwarenessConfig?: ZoneAwarenessConfig;
    ZoneAwarenessEnabled?: Value<boolean>;
    constructor(properties: ElasticsearchClusterConfig);
}
export declare class EncryptionAtRestOptions {
    Enabled?: Value<boolean>;
    KmsKeyId?: Value<string>;
    constructor(properties: EncryptionAtRestOptions);
}
export declare class SnapshotOptions {
    AutomatedSnapshotStartHour?: Value<number>;
    constructor(properties: SnapshotOptions);
}
export declare class EBSOptions {
    EBSEnabled?: Value<boolean>;
    Iops?: Value<number>;
    VolumeSize?: Value<number>;
    VolumeType?: Value<string>;
    constructor(properties: EBSOptions);
}
export declare class NodeToNodeEncryptionOptions {
    Enabled?: Value<boolean>;
    constructor(properties: NodeToNodeEncryptionOptions);
}
export declare class CognitoOptions {
    Enabled?: Value<boolean>;
    IdentityPoolId?: Value<string>;
    RoleArn?: Value<string>;
    UserPoolId?: Value<string>;
    constructor(properties: CognitoOptions);
}
export declare class VPCOptions {
    SecurityGroupIds?: List<Value<string>>;
    SubnetIds?: List<Value<string>>;
    constructor(properties: VPCOptions);
}
export interface DomainProperties {
    LogPublishingOptions?: MapOf<LogPublishingOption>;
    EBSOptions?: EBSOptions;
    CognitoOptions?: CognitoOptions;
    DomainName?: Value<string>;
    AccessPolicies?: MapOf<any>;
    EncryptionAtRestOptions?: EncryptionAtRestOptions;
    VPCOptions?: VPCOptions;
    Tags?: List<Inner_ResourceTag>;
    SnapshotOptions?: SnapshotOptions;
    ElasticsearchVersion?: Value<string>;
    NodeToNodeEncryptionOptions?: NodeToNodeEncryptionOptions;
    AdvancedOptions?: MapOf<Value<string>>;
    ElasticsearchClusterConfig?: ElasticsearchClusterConfig;
}
export default class Inner_Domain extends ResourceBase<DomainProperties> {
    static ZoneAwarenessConfig: typeof ZoneAwarenessConfig;
    static LogPublishingOption: typeof LogPublishingOption;
    static ElasticsearchClusterConfig: typeof ElasticsearchClusterConfig;
    static EncryptionAtRestOptions: typeof EncryptionAtRestOptions;
    static SnapshotOptions: typeof SnapshotOptions;
    static EBSOptions: typeof EBSOptions;
    static NodeToNodeEncryptionOptions: typeof NodeToNodeEncryptionOptions;
    static CognitoOptions: typeof CognitoOptions;
    static VPCOptions: typeof VPCOptions;
    constructor(properties: DomainProperties);
}
