import { Construct } from "constructs";
import { AddStageOpts, CodePipeline, StageDeployment, Wave, WaveOptions } from "aws-cdk-lib/pipelines";
import { ComputeType, IBuildImage } from "aws-cdk-lib/aws-codebuild";
import { PipelineNotificationRule } from "./pipeline-notification-rule";
import { Stage } from "aws-cdk-lib";
import { IFileSetProducer } from "aws-cdk-lib/pipelines";
/**
 * Properties for CdkPipeline
 */
export interface CdkPipelineProps {
    /**
     * By default, CDK will create KMS keys for cross account deployments. This
     * can be costly if you have a large number of pipelines. This property
     * allows a common key to be shared across pipelines.
     */
    readonly keyArn: string;
    /**
     * List of account IDs this pipeline will deploy into.
     */
    readonly accountIds: string[];
    /**
     * Arn of the CodeStar connection used to access the source code repository.
     */
    readonly connectionArn: string;
    /**
     * Name of the source code repository.
     */
    readonly repo: string;
    /**
     * Branch to use inside the source code repository.
     */
    readonly branch: string;
    /**
     * Enable docker for the 'synth' step.
     *
     * @default true
     */
    readonly dockerEnabledForSynth?: boolean;
    /**
     * Enable docker for the self-mutate step.
     *
     * @default true
     */
    readonly dockerEnabledForSelfMutation?: boolean;
    /**
     * Type of compute to use for this build.
     *
     * @default ComputeType.SMALL
     */
    readonly computeType?: ComputeType;
    /**
     * The image to use for builds.
     *
     * @default LinuxBuildImage.AMAZON_LINUX_2_3
     */
    readonly buildImage?: IBuildImage;
    /**
     * The Slack channel configuration to use for notifications.
     */
    readonly slackChannelConfigurationArn?: string;
    /**
     * The list of notification events to receive. By default this is all notifications.
     *
     * @see https://docs.aws.amazon.com/dtconsole/latest/userguide/concepts.html#events-ref-pipeline
     */
    readonly notificationEvents?: string[];
    /**
     * Additional FileSets to put in other directories
     */
    readonly additionalInputs?: Record<string, IFileSetProducer>;
    /**
     * Overrides default commands.
     */
    readonly commands?: string[];
}
/**
 * An abstraction to ease CDK pipeline creation and configuration.
 */
export declare class CdkPipeline extends Construct {
    readonly pipeline: CodePipeline;
    readonly pipelineNotificationRule: PipelineNotificationRule;
    constructor(scope: Construct, id: string, props: CdkPipelineProps);
    addStage(stage: Stage, options?: AddStageOpts): StageDeployment;
    addWave(id: string, options?: WaveOptions): Wave;
}
