import { aws_cloudwatch as cloudwatch, aws_codepipeline as cp, aws_events as events, aws_s3 as s3 } from 'aws-cdk-lib';
import { Construct } from 'constructs';
export interface ChangeControllerProps {
    /**
     * The bucket in which the ChangeControl iCal document will be stored.
     *
     * @default a new versioned bucket will be provisioned.
     */
    changeControlBucket?: s3.IBucket;
    /**
     * The key in which the iCal fille will be stored.
     *
     * @default 'change-control.ical'
     */
    changeControlObjectKey?: string;
    /**
     * Name of the stage
     */
    pipelineStage: cp.IStage;
    /**
     * Schedule to run the change controller on
     *
     * @default once every 15 minutes
     */
    schedule?: events.Schedule;
    /**
     * Whether to create outputs to inform of the S3 bucket name and keys where the change control calendar should be
     * stored.
     *
     * @defaults true
     */
    createOutputs?: boolean;
}
/**
 * Controls enabling and disabling a CodePipeline promotion into a particular stage based on "blocking" windows that are
 * configured in an iCal document stored in an S3 bucket. If the document is not present or the bucket does not exist,
 * the transition will be disabled.
 */
export declare class ChangeController extends Construct {
    /**
     * The alarm that will fire in case the change controller has failed.
     */
    readonly failureAlarm: cloudwatch.Alarm;
    constructor(scope: Construct, id: string, props: ChangeControllerProps);
}
