import cdk = require('@aws-cdk/cdk');
/**
 * A Lambda-based custom resource handler that provisions S3 bucket
 * notifications for a bucket.
 *
 * The resource property schema is:
 *
 * {
 *   BucketName: string, NotificationConfiguration: { see
 *   PutBucketNotificationConfiguration }
 * }
 *
 * For 'Delete' operations, we send an empty NotificationConfiguration as
 * required. We propagate errors and results as-is.
 *
 * Sadly, we can't use @aws-cdk/aws-lambda as it will introduce a dependency
 * cycle, so this uses raw `cdk.Resource`s.
 */
export declare class NotificationsResourceHandler extends cdk.Construct {
    /**
     * Defines a stack-singleton lambda function with the logic for a CloudFormation custom
     * resource that provisions bucket notification configuration for a bucket.
     *
     * @returns The ARN of the custom resource lambda function.
     */
    static singleton(context: cdk.Construct): cdk.Arn;
    /**
     * The ARN of the handler's lambda function. Used as a service token in the
     * custom resource.
     */
    readonly functionArn: cdk.Arn;
    constructor(parent: cdk.Construct, id: string);
}
