import { ResourceBase } from "../../resource";
import { Value, List, MapOf } from "../../data-types";
export declare class BrokerLogs {
    S3?: S3;
    Firehose?: Firehose;
    CloudWatchLogs?: CloudWatchLogs;
    constructor(properties: BrokerLogs);
}
export declare class CloudWatchLogs {
    LogGroup?: Value<string>;
    Enabled: Value<boolean>;
    constructor(properties: CloudWatchLogs);
}
export declare class Prometheus {
    JmxExporter?: JmxExporter;
    NodeExporter?: NodeExporter;
    constructor(properties: Prometheus);
}
export declare class EncryptionAtRest {
    DataVolumeKMSKeyId: Value<string>;
    constructor(properties: EncryptionAtRest);
}
export declare class ConfigurationInfo {
    Revision: Value<number>;
    Arn: Value<string>;
    constructor(properties: ConfigurationInfo);
}
export declare class Firehose {
    DeliveryStream?: Value<string>;
    Enabled: Value<boolean>;
    constructor(properties: Firehose);
}
export declare class EncryptionInfo {
    EncryptionAtRest?: EncryptionAtRest;
    EncryptionInTransit?: EncryptionInTransit;
    constructor(properties: EncryptionInfo);
}
export declare class StorageInfo {
    EBSStorageInfo?: EBSStorageInfo;
    constructor(properties: StorageInfo);
}
export declare class OpenMonitoring {
    Prometheus: Prometheus;
    constructor(properties: OpenMonitoring);
}
export declare class EncryptionInTransit {
    ClientBroker?: Value<string>;
    InCluster?: Value<boolean>;
    constructor(properties: EncryptionInTransit);
}
export declare class EBSStorageInfo {
    VolumeSize?: Value<number>;
    constructor(properties: EBSStorageInfo);
}
export declare class LoggingInfo {
    BrokerLogs: BrokerLogs;
    constructor(properties: LoggingInfo);
}
export declare class BrokerNodeGroupInfo {
    SecurityGroups?: List<Value<string>>;
    ClientSubnets: List<Value<string>>;
    StorageInfo?: StorageInfo;
    BrokerAZDistribution?: Value<string>;
    InstanceType: Value<string>;
    constructor(properties: BrokerNodeGroupInfo);
}
export declare class JmxExporter {
    EnabledInBroker: Value<boolean>;
    constructor(properties: JmxExporter);
}
export declare class S3 {
    Bucket?: Value<string>;
    Enabled: Value<boolean>;
    Prefix?: Value<string>;
    constructor(properties: S3);
}
export declare class Tls {
    CertificateAuthorityArnList?: List<Value<string>>;
    constructor(properties: Tls);
}
export declare class ClientAuthentication {
    Tls?: Tls;
    constructor(properties: ClientAuthentication);
}
export declare class NodeExporter {
    EnabledInBroker: Value<boolean>;
    constructor(properties: NodeExporter);
}
export interface ClusterProperties {
    ClientAuthentication?: ClientAuthentication;
    ConfigurationInfo?: ConfigurationInfo;
    ClusterName: Value<string>;
    LoggingInfo?: LoggingInfo;
    EncryptionInfo?: EncryptionInfo;
    BrokerNodeGroupInfo: BrokerNodeGroupInfo;
    OpenMonitoring?: OpenMonitoring;
    KafkaVersion: Value<string>;
    NumberOfBrokerNodes: Value<number>;
    Tags?: MapOf<any>;
    EnhancedMonitoring?: Value<string>;
}
export default class Inner_Cluster extends ResourceBase<ClusterProperties> {
    static BrokerLogs: typeof BrokerLogs;
    static CloudWatchLogs: typeof CloudWatchLogs;
    static Prometheus: typeof Prometheus;
    static EncryptionAtRest: typeof EncryptionAtRest;
    static ConfigurationInfo: typeof ConfigurationInfo;
    static Firehose: typeof Firehose;
    static EncryptionInfo: typeof EncryptionInfo;
    static StorageInfo: typeof StorageInfo;
    static OpenMonitoring: typeof OpenMonitoring;
    static EncryptionInTransit: typeof EncryptionInTransit;
    static EBSStorageInfo: typeof EBSStorageInfo;
    static LoggingInfo: typeof LoggingInfo;
    static BrokerNodeGroupInfo: typeof BrokerNodeGroupInfo;
    static JmxExporter: typeof JmxExporter;
    static S3: typeof S3;
    static Tls: typeof Tls;
    static ClientAuthentication: typeof ClientAuthentication;
    static NodeExporter: typeof NodeExporter;
    constructor(properties: ClusterProperties);
}
