import { Construct } from 'constructs';
import { ResolvedApplicationProps } from '../applicationProps';
import { Topic } from 'aws-cdk-lib/aws-sns';
import { IStringParameter } from 'aws-cdk-lib/aws-ssm';
import * as s3 from 'aws-cdk-lib/aws-s3';
export interface MainPipelineProps extends Pick<ResolvedApplicationProps, 'stacks' | 'repository' | 'commands' | 'pipeline' | 'cdkOutputDirectory' | 'codeBuild' | 'codePipeline' | 'fixPathsMetadata'> {
    sourceBucket: s3.IBucket;
    repositoryTokenParam: IStringParameter;
}
export declare class MainPipeline extends Construct {
    readonly failuresTopic: Topic;
    constructor(scope: Construct, id: string, props: MainPipelineProps);
    private isWave;
    private addWaveDeployment;
    private addEnvironmentDeployment;
    private createPipelineFailuresTopic;
    /**
     * To send CodePipeline build status back to repository:
     * - trigger Lambda function on CodePipeline state change events,
     * - in Lambda:
     *   - get CodePipeline execution details to get commit SHA,
     *   - send custom event to EventBridge including the commit SHA,
     * - use EventBridge to send build status to repository.
     */
    private createPipelineBuildNotifications;
}
