import { aws_apigateway, aws_lambda } from 'aws-cdk-lib';
import { Construct } from 'constructs';
export interface IPipelineTrigger {
    /**
     * List of file system glob patterns. If a commit changes any matching file, pipeline will be triggered.
     */
    readonly triggerPatterns: string[];
    /**
     * Name of the pipeline stack. Informs the lambda which pipeline to trigger when a matching change occurs.
     */
    readonly pipelineStackName: string;
}
export interface ISourceWatcherProps {
    /**
     * Used to configure the SourceWatcher with a file patterns and the appropriate pipelines that they should trigger.
     */
    readonly triggers: IPipelineTrigger[];
    /**
     * Name of repository to watch for changes. (Ex: "owner/my-repo-name")
     */
    readonly targetRepo: string;
    /**
     * Branch to watch for changes on. All other branches will be ignored and WON'T trigger pipeline execution.
     */
    readonly targetBranch: string;
    /**
     * SecretsManager path to secret with credentials for accessing the GitHub repo.
     */
    readonly gitTokenPath: string;
    /**
     * Stack name for aws-github-webhook. Needed in order to create a webhook on targetRepo.
     */
    readonly webhookResourceStackName?: string;
    readonly webhookResourceArnParameterPath?: string;
}
export declare class SourceWatcher extends Construct {
    /**
     * The Lambda Function which handles a GitHub event payload and triggers a pipeline.
     */
    readonly lambdaFunction: aws_lambda.Function;
    /**
     * API which routes requests to the lambdaFunction.
     */
    readonly api: aws_apigateway.LambdaRestApi;
    /**
     * Reference which will resolve to the ID of the webhook created on the GitHub repo.
     */
    readonly webhookId: string;
    constructor(scope: Construct, id: string, props: ISourceWatcherProps);
}
