import * as core from "@terrascript/core";
export interface AddHeaderActionArgs extends core.SchemaArgs {
    headerName: string | core.StringOut;
    headerValue: string | core.StringOut;
    position: number | core.NumberOut;
}
export declare class AddHeaderAction extends core.Schema<AddHeaderActionArgs> {
    headerName: string | core.StringOut;
    headerValue: string | core.StringOut;
    position: number | core.NumberOut;
}
export interface BounceActionArgs extends core.SchemaArgs {
    message: string | core.StringOut;
    position: number | core.NumberOut;
    sender: string | core.StringOut;
    smtpReplyCode: string | core.StringOut;
    statusCode?: string | core.StringOut;
    topicArn?: string | core.StringOut;
}
export declare class BounceAction extends core.Schema<BounceActionArgs> {
    message: string | core.StringOut;
    position: number | core.NumberOut;
    sender: string | core.StringOut;
    smtpReplyCode: string | core.StringOut;
    statusCode?: string | core.StringOut;
    topicArn?: string | core.StringOut;
}
export interface StopActionArgs extends core.SchemaArgs {
    position: number | core.NumberOut;
    scope: string | core.StringOut;
    topicArn?: string | core.StringOut;
}
export declare class StopAction extends core.Schema<StopActionArgs> {
    position: number | core.NumberOut;
    scope: string | core.StringOut;
    topicArn?: string | core.StringOut;
}
export interface LambdaActionArgs extends core.SchemaArgs {
    functionArn: string | core.StringOut;
    invocationType?: string | core.StringOut;
    position: number | core.NumberOut;
    topicArn?: string | core.StringOut;
}
export declare class LambdaAction extends core.Schema<LambdaActionArgs> {
    functionArn: string | core.StringOut;
    invocationType?: string | core.StringOut;
    position: number | core.NumberOut;
    topicArn?: string | core.StringOut;
}
export interface S3ActionArgs extends core.SchemaArgs {
    bucketName: string | core.StringOut;
    kmsKeyArn?: string | core.StringOut;
    objectKeyPrefix?: string | core.StringOut;
    position: number | core.NumberOut;
    topicArn?: string | core.StringOut;
}
export declare class S3Action extends core.Schema<S3ActionArgs> {
    bucketName: string | core.StringOut;
    kmsKeyArn?: string | core.StringOut;
    objectKeyPrefix?: string | core.StringOut;
    position: number | core.NumberOut;
    topicArn?: string | core.StringOut;
}
export interface WorkmailActionArgs extends core.SchemaArgs {
    organizationArn: string | core.StringOut;
    position: number | core.NumberOut;
    topicArn?: string | core.StringOut;
}
export declare class WorkmailAction extends core.Schema<WorkmailActionArgs> {
    organizationArn: string | core.StringOut;
    position: number | core.NumberOut;
    topicArn?: string | core.StringOut;
}
export interface SnsActionArgs extends core.SchemaArgs {
    encoding?: string | core.StringOut;
    position: number | core.NumberOut;
    topicArn: string | core.StringOut;
}
export declare class SnsAction extends core.Schema<SnsActionArgs> {
    encoding?: string | core.StringOut;
    position: number | core.NumberOut;
    topicArn: string | core.StringOut;
}
export interface ReceiptRuleArgs extends core.ResourceArgs {
    addHeaderAction?: core.Array<AddHeaderAction> | core.ArrayOut<AddHeaderAction>;
    after?: string | core.StringOut;
    bounceAction?: core.Array<BounceAction> | core.ArrayOut<BounceAction>;
    enabled?: boolean | core.BooleanOut;
    lambdaAction?: core.Array<LambdaAction> | core.ArrayOut<LambdaAction>;
    name: string | core.StringOut;
    recipients?: core.Array<string> | core.ArrayOut<core.StringOut>;
    ruleSetName: string | core.StringOut;
    s3Action?: core.Array<S3Action> | core.ArrayOut<S3Action>;
    scanEnabled?: boolean | core.BooleanOut;
    snsAction?: core.Array<SnsAction> | core.ArrayOut<SnsAction>;
    stopAction?: core.Array<StopAction> | core.ArrayOut<StopAction>;
    tlsPolicy?: string | core.StringOut;
    workmailAction?: core.Array<WorkmailAction> | core.ArrayOut<WorkmailAction>;
}
export declare class ReceiptRule extends core.Resource<ReceiptRuleArgs> {
    addHeaderAction?: core.Array<AddHeaderAction> | core.ArrayOut<AddHeaderAction>;
    after?: string | core.StringOut;
    arn: string | core.StringOut;
    bounceAction?: core.Array<BounceAction> | core.ArrayOut<BounceAction>;
    enabled?: boolean | core.BooleanOut;
    id: string | core.StringOut;
    lambdaAction?: core.Array<LambdaAction> | core.ArrayOut<LambdaAction>;
    name: string | core.StringOut;
    recipients?: core.Array<string> | core.ArrayOut<core.StringOut>;
    ruleSetName: string | core.StringOut;
    s3Action?: core.Array<S3Action> | core.ArrayOut<S3Action>;
    scanEnabled?: boolean | core.BooleanOut;
    snsAction?: core.Array<SnsAction> | core.ArrayOut<SnsAction>;
    stopAction?: core.Array<StopAction> | core.ArrayOut<StopAction>;
    tlsPolicy?: string | core.StringOut;
    workmailAction?: core.Array<WorkmailAction> | core.ArrayOut<WorkmailAction>;
    constructor(name: string, args?: ReceiptRuleArgs);
    getNamespace(): string;
}
//# sourceMappingURL=receipt_rule.d.ts.map