/**
 *  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
 *
 *  Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
 *  with the License. A copy of the License is located at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES
 *  OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
 *  and limitations under the License.
 */
import * as pipes from 'aws-cdk-lib/aws-pipes';
import * as sqs from 'aws-cdk-lib/aws-sqs';
import * as iam from 'aws-cdk-lib/aws-iam';
import * as logs from 'aws-cdk-lib/aws-logs';
import * as dynamodb from 'aws-cdk-lib/aws-dynamodb';
import * as lambda from 'aws-cdk-lib/aws-lambda';
import * as sfn from 'aws-cdk-lib/aws-stepfunctions';
import * as cdk from 'aws-cdk-lib';
import { Construct } from 'constructs';
export declare enum PipesLogLevel {
    OFF = "OFF",
    TRACE = "TRACE",
    INFO = "INFO",
    ERROR = "ERROR"
}
export interface CreateSourceResponse {
    readonly sourceParameters: pipes.CfnPipe.PipeSourceParametersProperty;
    readonly sourceArn: string;
    readonly sourcePolicy: iam.PolicyDocument;
    readonly dlq?: sqs.Queue;
}
export interface BuildPipesProps {
    readonly source: CreateSourceResponse;
    readonly target: CreateTargetResponse;
    readonly enrichmentFunction?: lambda.Function;
    readonly enrichmentStateMachine?: sfn.StateMachine;
    readonly clientProps?: any | pipes.CfnPipeProps;
    readonly logLevel?: PipesLogLevel;
    readonly pipeLogProps?: logs.LogGroupProps;
}
export interface BuildPipesResponse {
    readonly pipe: pipes.CfnPipe;
    readonly pipeRole: iam.Role;
}
export declare function BuildPipe(scope: Construct, id: string, props: BuildPipesProps): BuildPipesResponse;
export declare function CreateSqsSource(queue: sqs.IQueue, clientProps?: pipes.CfnPipe.PipeSourceParametersProperty | cdk.IResolvable): CreateSourceResponse;
interface CreateDynamoDBStreamsSourceProps {
    table: dynamodb.ITable;
    deploySqsDlqQueue?: boolean;
    sqsDlqQueueProps?: sqs.QueueProps;
    clientProps?: pipes.CfnPipe.PipeSourceParametersProperty | cdk.IResolvable;
}
export declare function CreateDynamoDBStreamsSource(scope: Construct, props: CreateDynamoDBStreamsSourceProps): CreateSourceResponse;
export interface CreateTargetResponse {
    readonly targetParameters: pipes.CfnPipe.PipeTargetParametersProperty;
    readonly targetArn: string;
    readonly targetPolicy: iam.PolicyDocument;
}
export declare function CreateStateMachineTarget(stateMachine: sfn.IStateMachine, clientProps?: pipes.CfnPipe.PipeTargetParametersProperty | cdk.IResolvable): CreateTargetResponse;
export interface PipesProps {
    readonly pipesProps?: pipes.CfnPipeProps;
}
export declare function CheckPipesProps(propsObject: PipesProps | any): void;
export {};
