import { Construct } from "constructs";
import { ActiveMqAuthenticationStrategy } from "./activemq-authentication-strategy";
import { ActiveMqBrokerConfigurationDefinition } from "./activemq-broker-configuration-definition";
import { IActiveMqBrokerDeployment } from "./activemq-broker-deployment";
import { ActiveMqBrokerEngineVersion } from "./activemq-broker-engine-version";
import { BrokerConfiguration, BrokerConfigurationAttributes, IBrokerConfiguration } from "../configuration";
import { ConfigurationAssociation } from "../configuration-association";
export interface ActiveMqBrokerConfigurationOptions {
    readonly description?: string;
    readonly definition: ActiveMqBrokerConfigurationDefinition;
}
export interface ActiveMqBrokerConfigurationProps extends ActiveMqBrokerConfigurationOptions {
    readonly configurationName?: string;
    readonly engineVersion: ActiveMqBrokerEngineVersion;
    /**
     * Sets authentication strategy for the broker
     *
     * @default - undefined; a SIMPLE authentication strategy will be applied
     */
    readonly authenticationStrategy?: ActiveMqAuthenticationStrategy;
}
export interface IActiveMqBrokerConfiguration extends IBrokerConfiguration {
    associateWith(broker: IActiveMqBrokerDeployment): ConfigurationAssociation;
    createRevision(options: ActiveMqBrokerConfigurationOptions): IActiveMqBrokerConfiguration;
}
export declare class ActiveMqBrokerConfiguration extends BrokerConfiguration {
    static fromAttributes(scope: Construct, logicalId: string, attrs: BrokerConfigurationAttributes): IActiveMqBrokerConfiguration;
    constructor(scope: Construct, id: string, props: ActiveMqBrokerConfigurationProps);
    associateWith(broker: IActiveMqBrokerDeployment): ConfigurationAssociation;
    createRevision(options: ActiveMqBrokerConfigurationOptions): IActiveMqBrokerConfiguration;
}
