import * as core from "@terrascript/core";
export interface KafkaArgs extends core.SchemaArgs {
    clientProperties: core.Map<string, string> | core.MapOut<core.StringOut>;
    destinationArn: string | core.StringOut;
    key?: string | core.StringOut;
    partition?: string | core.StringOut;
    topic: string | core.StringOut;
}
export declare class Kafka extends core.Schema<KafkaArgs> {
    clientProperties: core.Map<string, string> | core.MapOut<core.StringOut>;
    destinationArn: string | core.StringOut;
    key?: string | core.StringOut;
    partition?: string | core.StringOut;
    topic: string | core.StringOut;
}
export interface StepFunctionsArgs extends core.SchemaArgs {
    executionNamePrefix?: string | core.StringOut;
    roleArn: string | core.StringOut;
    stateMachineName: string | core.StringOut;
}
export declare class StepFunctions extends core.Schema<StepFunctionsArgs> {
    executionNamePrefix?: string | core.StringOut;
    roleArn: string | core.StringOut;
    stateMachineName: string | core.StringOut;
}
export interface RepublishArgs extends core.SchemaArgs {
    qos?: number | core.NumberOut;
    roleArn: string | core.StringOut;
    topic: string | core.StringOut;
}
export declare class Republish extends core.Schema<RepublishArgs> {
    qos?: number | core.NumberOut;
    roleArn: string | core.StringOut;
    topic: string | core.StringOut;
}
export interface KinesisArgs extends core.SchemaArgs {
    partitionKey?: string | core.StringOut;
    roleArn: string | core.StringOut;
    streamName: string | core.StringOut;
}
export declare class Kinesis extends core.Schema<KinesisArgs> {
    partitionKey?: string | core.StringOut;
    roleArn: string | core.StringOut;
    streamName: string | core.StringOut;
}
export interface SqsArgs extends core.SchemaArgs {
    queueUrl: string | core.StringOut;
    roleArn: string | core.StringOut;
    useBase64: boolean | core.BooleanOut;
}
export declare class Sqs extends core.Schema<SqsArgs> {
    queueUrl: string | core.StringOut;
    roleArn: string | core.StringOut;
    useBase64: boolean | core.BooleanOut;
}
export interface IotEventsArgs extends core.SchemaArgs {
    inputName: string | core.StringOut;
    messageId?: string | core.StringOut;
    roleArn: string | core.StringOut;
}
export declare class IotEvents extends core.Schema<IotEventsArgs> {
    inputName: string | core.StringOut;
    messageId?: string | core.StringOut;
    roleArn: string | core.StringOut;
}
export interface HttpHeaderArgs extends core.SchemaArgs {
    key: string | core.StringOut;
    value: string | core.StringOut;
}
export declare class HttpHeader extends core.Schema<HttpHeaderArgs> {
    key: string | core.StringOut;
    value: string | core.StringOut;
}
export interface HttpArgs extends core.SchemaArgs {
    confirmationUrl?: string | core.StringOut;
    httpHeader?: core.Array<HttpHeader> | core.ArrayOut<HttpHeader>;
    url: string | core.StringOut;
}
export declare class Http extends core.Schema<HttpArgs> {
    confirmationUrl?: string | core.StringOut;
    httpHeader?: core.Array<HttpHeader> | core.ArrayOut<HttpHeader>;
    url: string | core.StringOut;
}
export interface IotAnalyticsArgs extends core.SchemaArgs {
    channelName: string | core.StringOut;
    roleArn: string | core.StringOut;
}
export declare class IotAnalytics extends core.Schema<IotAnalyticsArgs> {
    channelName: string | core.StringOut;
    roleArn: string | core.StringOut;
}
export interface CloudwatchMetricArgs extends core.SchemaArgs {
    metricName: string | core.StringOut;
    metricNamespace: string | core.StringOut;
    metricTimestamp?: string | core.StringOut;
    metricUnit: string | core.StringOut;
    metricValue: string | core.StringOut;
    roleArn: string | core.StringOut;
}
export declare class CloudwatchMetric extends core.Schema<CloudwatchMetricArgs> {
    metricName: string | core.StringOut;
    metricNamespace: string | core.StringOut;
    metricTimestamp?: string | core.StringOut;
    metricUnit: string | core.StringOut;
    metricValue: string | core.StringOut;
    roleArn: string | core.StringOut;
}
export interface FirehoseArgs extends core.SchemaArgs {
    deliveryStreamName: string | core.StringOut;
    roleArn: string | core.StringOut;
    separator?: string | core.StringOut;
}
export declare class Firehose extends core.Schema<FirehoseArgs> {
    deliveryStreamName: string | core.StringOut;
    roleArn: string | core.StringOut;
    separator?: string | core.StringOut;
}
export interface ElasticsearchArgs extends core.SchemaArgs {
    endpoint: string | core.StringOut;
    id: string | core.StringOut;
    index: string | core.StringOut;
    roleArn: string | core.StringOut;
    type: string | core.StringOut;
}
export declare class Elasticsearch extends core.Schema<ElasticsearchArgs> {
    endpoint: string | core.StringOut;
    id: string | core.StringOut;
    index: string | core.StringOut;
    roleArn: string | core.StringOut;
    type: string | core.StringOut;
}
export interface CloudwatchAlarmArgs extends core.SchemaArgs {
    alarmName: string | core.StringOut;
    roleArn: string | core.StringOut;
    stateReason: string | core.StringOut;
    stateValue: string | core.StringOut;
}
export declare class CloudwatchAlarm extends core.Schema<CloudwatchAlarmArgs> {
    alarmName: string | core.StringOut;
    roleArn: string | core.StringOut;
    stateReason: string | core.StringOut;
    stateValue: string | core.StringOut;
}
export interface CloudwatchLogsArgs extends core.SchemaArgs {
    logGroupName: string | core.StringOut;
    roleArn: string | core.StringOut;
}
export declare class CloudwatchLogs extends core.Schema<CloudwatchLogsArgs> {
    logGroupName: string | core.StringOut;
    roleArn: string | core.StringOut;
}
export interface LambdaArgs extends core.SchemaArgs {
    functionArn: string | core.StringOut;
}
export declare class Lambda extends core.Schema<LambdaArgs> {
    functionArn: string | core.StringOut;
}
export interface DimensionArgs extends core.SchemaArgs {
    name: string | core.StringOut;
    value: string | core.StringOut;
}
export declare class Dimension extends core.Schema<DimensionArgs> {
    name: string | core.StringOut;
    value: string | core.StringOut;
}
export interface TimestampArgs extends core.SchemaArgs {
    unit: string | core.StringOut;
    value: string | core.StringOut;
}
export declare class Timestamp extends core.Schema<TimestampArgs> {
    unit: string | core.StringOut;
    value: string | core.StringOut;
}
export interface TimestreamArgs extends core.SchemaArgs {
    databaseName: string | core.StringOut;
    dimension: core.Array<Dimension> | core.ArrayOut<Dimension>;
    roleArn: string | core.StringOut;
    tableName: string | core.StringOut;
    timestamp?: Timestamp;
}
export declare class Timestream extends core.Schema<TimestreamArgs> {
    databaseName: string | core.StringOut;
    dimension: core.Array<Dimension> | core.ArrayOut<Dimension>;
    roleArn: string | core.StringOut;
    tableName: string | core.StringOut;
    timestamp?: Timestamp;
}
export interface S3Args extends core.SchemaArgs {
    bucketName: string | core.StringOut;
    cannedAcl?: string | core.StringOut;
    key: string | core.StringOut;
    roleArn: string | core.StringOut;
}
export declare class S3 extends core.Schema<S3Args> {
    bucketName: string | core.StringOut;
    cannedAcl?: string | core.StringOut;
    key: string | core.StringOut;
    roleArn: string | core.StringOut;
}
export interface DynamodbArgs extends core.SchemaArgs {
    hashKeyField: string | core.StringOut;
    hashKeyType?: string | core.StringOut;
    hashKeyValue: string | core.StringOut;
    operation?: string | core.StringOut;
    payloadField?: string | core.StringOut;
    rangeKeyField?: string | core.StringOut;
    rangeKeyType?: string | core.StringOut;
    rangeKeyValue?: string | core.StringOut;
    roleArn: string | core.StringOut;
    tableName: string | core.StringOut;
}
export declare class Dynamodb extends core.Schema<DynamodbArgs> {
    hashKeyField: string | core.StringOut;
    hashKeyType?: string | core.StringOut;
    hashKeyValue: string | core.StringOut;
    operation?: string | core.StringOut;
    payloadField?: string | core.StringOut;
    rangeKeyField?: string | core.StringOut;
    rangeKeyType?: string | core.StringOut;
    rangeKeyValue?: string | core.StringOut;
    roleArn: string | core.StringOut;
    tableName: string | core.StringOut;
}
export interface PutItemArgs extends core.SchemaArgs {
    tableName: string | core.StringOut;
}
export declare class PutItem extends core.Schema<PutItemArgs> {
    tableName: string | core.StringOut;
}
export interface Dynamodbv2Args extends core.SchemaArgs {
    putItem?: PutItem;
    roleArn: string | core.StringOut;
}
export declare class Dynamodbv2 extends core.Schema<Dynamodbv2Args> {
    putItem?: PutItem;
    roleArn: string | core.StringOut;
}
export interface SnsArgs extends core.SchemaArgs {
    messageFormat?: string | core.StringOut;
    roleArn: string | core.StringOut;
    targetArn: string | core.StringOut;
}
export declare class Sns extends core.Schema<SnsArgs> {
    messageFormat?: string | core.StringOut;
    roleArn: string | core.StringOut;
    targetArn: string | core.StringOut;
}
export interface ErrorActionArgs extends core.SchemaArgs {
    cloudwatchAlarm?: CloudwatchAlarm;
    cloudwatchLogs?: CloudwatchLogs;
    cloudwatchMetric?: CloudwatchMetric;
    dynamodb?: Dynamodb;
    dynamodbv2?: Dynamodbv2;
    elasticsearch?: Elasticsearch;
    firehose?: Firehose;
    http?: Http;
    iotAnalytics?: IotAnalytics;
    iotEvents?: IotEvents;
    kafka?: Kafka;
    kinesis?: Kinesis;
    lambda?: Lambda;
    republish?: Republish;
    s3?: S3;
    sns?: Sns;
    sqs?: Sqs;
    stepFunctions?: StepFunctions;
    timestream?: Timestream;
}
export declare class ErrorAction extends core.Schema<ErrorActionArgs> {
    cloudwatchAlarm?: CloudwatchAlarm;
    cloudwatchLogs?: CloudwatchLogs;
    cloudwatchMetric?: CloudwatchMetric;
    dynamodb?: Dynamodb;
    dynamodbv2?: Dynamodbv2;
    elasticsearch?: Elasticsearch;
    firehose?: Firehose;
    http?: Http;
    iotAnalytics?: IotAnalytics;
    iotEvents?: IotEvents;
    kafka?: Kafka;
    kinesis?: Kinesis;
    lambda?: Lambda;
    republish?: Republish;
    s3?: S3;
    sns?: Sns;
    sqs?: Sqs;
    stepFunctions?: StepFunctions;
    timestream?: Timestream;
}
export interface TopicRuleArgs extends core.ResourceArgs {
    cloudwatchAlarm?: core.Array<CloudwatchAlarm> | core.ArrayOut<CloudwatchAlarm>;
    cloudwatchLogs?: core.Array<CloudwatchLogs> | core.ArrayOut<CloudwatchLogs>;
    cloudwatchMetric?: core.Array<CloudwatchMetric> | core.ArrayOut<CloudwatchMetric>;
    description?: string | core.StringOut;
    dynamodb?: core.Array<Dynamodb> | core.ArrayOut<Dynamodb>;
    dynamodbv2?: core.Array<Dynamodbv2> | core.ArrayOut<Dynamodbv2>;
    elasticsearch?: core.Array<Elasticsearch> | core.ArrayOut<Elasticsearch>;
    enabled: boolean | core.BooleanOut;
    errorAction?: ErrorAction;
    firehose?: core.Array<Firehose> | core.ArrayOut<Firehose>;
    http?: core.Array<Http> | core.ArrayOut<Http>;
    iotAnalytics?: core.Array<IotAnalytics> | core.ArrayOut<IotAnalytics>;
    iotEvents?: core.Array<IotEvents> | core.ArrayOut<IotEvents>;
    kafka?: core.Array<Kafka> | core.ArrayOut<Kafka>;
    kinesis?: core.Array<Kinesis> | core.ArrayOut<Kinesis>;
    lambda?: core.Array<Lambda> | core.ArrayOut<Lambda>;
    name: string | core.StringOut;
    republish?: core.Array<Republish> | core.ArrayOut<Republish>;
    s3?: core.Array<S3> | core.ArrayOut<S3>;
    sns?: core.Array<Sns> | core.ArrayOut<Sns>;
    sql: string | core.StringOut;
    sqlVersion: string | core.StringOut;
    sqs?: core.Array<Sqs> | core.ArrayOut<Sqs>;
    stepFunctions?: core.Array<StepFunctions> | core.ArrayOut<StepFunctions>;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    timestream?: core.Array<Timestream> | core.ArrayOut<Timestream>;
}
export declare class TopicRule extends core.Resource<TopicRuleArgs> {
    arn: string | core.StringOut;
    cloudwatchAlarm?: core.Array<CloudwatchAlarm> | core.ArrayOut<CloudwatchAlarm>;
    cloudwatchLogs?: core.Array<CloudwatchLogs> | core.ArrayOut<CloudwatchLogs>;
    cloudwatchMetric?: core.Array<CloudwatchMetric> | core.ArrayOut<CloudwatchMetric>;
    description?: string | core.StringOut;
    dynamodb?: core.Array<Dynamodb> | core.ArrayOut<Dynamodb>;
    dynamodbv2?: core.Array<Dynamodbv2> | core.ArrayOut<Dynamodbv2>;
    elasticsearch?: core.Array<Elasticsearch> | core.ArrayOut<Elasticsearch>;
    enabled: boolean | core.BooleanOut;
    errorAction?: ErrorAction;
    firehose?: core.Array<Firehose> | core.ArrayOut<Firehose>;
    http?: core.Array<Http> | core.ArrayOut<Http>;
    id: string | core.StringOut;
    iotAnalytics?: core.Array<IotAnalytics> | core.ArrayOut<IotAnalytics>;
    iotEvents?: core.Array<IotEvents> | core.ArrayOut<IotEvents>;
    kafka?: core.Array<Kafka> | core.ArrayOut<Kafka>;
    kinesis?: core.Array<Kinesis> | core.ArrayOut<Kinesis>;
    lambda?: core.Array<Lambda> | core.ArrayOut<Lambda>;
    name: string | core.StringOut;
    republish?: core.Array<Republish> | core.ArrayOut<Republish>;
    s3?: core.Array<S3> | core.ArrayOut<S3>;
    sns?: core.Array<Sns> | core.ArrayOut<Sns>;
    sql: string | core.StringOut;
    sqlVersion: string | core.StringOut;
    sqs?: core.Array<Sqs> | core.ArrayOut<Sqs>;
    stepFunctions?: core.Array<StepFunctions> | core.ArrayOut<StepFunctions>;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    timestream?: core.Array<Timestream> | core.ArrayOut<Timestream>;
    constructor(name: string, args?: TopicRuleArgs);
    getNamespace(): string;
}
//# sourceMappingURL=topic_rule.d.ts.map