import * as core from "@terrascript/core";
export interface TopicArgs extends core.SchemaArgs {
    events: core.Array<string> | core.ArrayOut<core.StringOut>;
    filterPrefix?: string | core.StringOut;
    filterSuffix?: string | core.StringOut;
    id?: string | core.StringOut;
    topicArn: string | core.StringOut;
}
export declare class Topic extends core.Schema<TopicArgs> {
    events: core.Array<string> | core.ArrayOut<core.StringOut>;
    filterPrefix?: string | core.StringOut;
    filterSuffix?: string | core.StringOut;
    id?: string | core.StringOut;
    topicArn: string | core.StringOut;
}
export interface QueueArgs extends core.SchemaArgs {
    events: core.Array<string> | core.ArrayOut<core.StringOut>;
    filterPrefix?: string | core.StringOut;
    filterSuffix?: string | core.StringOut;
    id?: string | core.StringOut;
    queueArn: string | core.StringOut;
}
export declare class Queue extends core.Schema<QueueArgs> {
    events: core.Array<string> | core.ArrayOut<core.StringOut>;
    filterPrefix?: string | core.StringOut;
    filterSuffix?: string | core.StringOut;
    id?: string | core.StringOut;
    queueArn: string | core.StringOut;
}
export interface LambdaFunctionArgs extends core.SchemaArgs {
    events: core.Array<string> | core.ArrayOut<core.StringOut>;
    filterPrefix?: string | core.StringOut;
    filterSuffix?: string | core.StringOut;
    id?: string | core.StringOut;
    lambdaFunctionArn?: string | core.StringOut;
}
export declare class LambdaFunction extends core.Schema<LambdaFunctionArgs> {
    events: core.Array<string> | core.ArrayOut<core.StringOut>;
    filterPrefix?: string | core.StringOut;
    filterSuffix?: string | core.StringOut;
    id?: string | core.StringOut;
    lambdaFunctionArn?: string | core.StringOut;
}
export interface BucketNotificationArgs extends core.ResourceArgs {
    bucket: string | core.StringOut;
    eventbridge?: boolean | core.BooleanOut;
    lambdaFunction?: core.Array<LambdaFunction> | core.ArrayOut<LambdaFunction>;
    queue?: core.Array<Queue> | core.ArrayOut<Queue>;
    topic?: core.Array<Topic> | core.ArrayOut<Topic>;
}
export declare class BucketNotification extends core.Resource<BucketNotificationArgs> {
    bucket: string | core.StringOut;
    eventbridge?: boolean | core.BooleanOut;
    id: string | core.StringOut;
    lambdaFunction?: core.Array<LambdaFunction> | core.ArrayOut<LambdaFunction>;
    queue?: core.Array<Queue> | core.ArrayOut<Queue>;
    topic?: core.Array<Topic> | core.ArrayOut<Topic>;
    constructor(name: string, args?: BucketNotificationArgs);
    getNamespace(): string;
}
//# sourceMappingURL=bucket_notification.d.ts.map