import { Construct } from "constructs";
import { RabbitMqBrokerConfigurationDefinition } from "./rabbitmq-broker-configuration-definition";
import { IRabbitMqBrokerDeployment } from "./rabbitmq-broker-deployment";
import { RabbitMqBrokerEngineVersion } from "./rabbitmq-broker-engine-version";
import { BrokerConfiguration, BrokerConfigurationAttributes, IBrokerConfiguration } from "../configuration";
import { ConfigurationAssociation } from "../configuration-association";
export interface RabbitMqBrokerConfigurationOptions {
    readonly description?: string;
    readonly definition: RabbitMqBrokerConfigurationDefinition;
}
export interface RabbitMqBrokerConfigurationProps extends RabbitMqBrokerConfigurationOptions {
    readonly configurationName?: string;
    readonly engineVersion: RabbitMqBrokerEngineVersion;
}
export interface IRabbitMqBrokerConfiguration extends IBrokerConfiguration {
    associateWith(broker: IRabbitMqBrokerDeployment): ConfigurationAssociation;
    createRevision(options: RabbitMqBrokerConfigurationOptions): IRabbitMqBrokerConfiguration;
}
export declare class RabbitMqBrokerConfiguration extends BrokerConfiguration {
    static fromAttributes(scope: Construct, logicalId: string, attrs: BrokerConfigurationAttributes): IRabbitMqBrokerConfiguration;
    constructor(scope: Construct, id: string, props: RabbitMqBrokerConfigurationProps);
    associateWith(broker: IRabbitMqBrokerDeployment): ConfigurationAssociation;
    createRevision(options: RabbitMqBrokerConfigurationOptions): IRabbitMqBrokerConfiguration;
}
