import * as events from "aws-cdk-lib/aws-events";
import * as sns from "aws-cdk-lib/aws-sns";
import { Construct } from "constructs";
import { Stage } from "./stage";
export interface DataPipelineProps {
    readonly name?: string;
    readonly description?: string;
}
export interface AddStageProps {
    readonly stage: Stage;
    readonly skipRule?: boolean;
    readonly overrideRule?: events.IRule;
    readonly ruleName?: string;
    readonly schedule?: events.Schedule;
}
export interface AddRuleProps {
    readonly id?: string;
    readonly eventPattern?: events.EventPattern;
    readonly eventTargets?: events.IRuleTarget[];
    readonly overrideRule?: events.IRule;
    readonly ruleName?: string;
    readonly schedule?: events.Schedule;
}
export declare class DataPipeline extends Construct {
    readonly name?: string;
    readonly description?: string;
    private previousStage?;
    private rules;
    private notificationsTopic?;
    constructor(scope: Construct, id: string, props: DataPipelineProps);
    addStage(props: AddStageProps): DataPipeline;
    addRule(props: AddRuleProps): DataPipeline;
    addNotifications(notificationsTopic?: sns.ITopic): DataPipeline;
}
