import * as core from "@terrascript/core";
export interface ParallelismArgs extends core.SchemaArgs {
    count?: number | core.NumberOut;
}
export declare class Parallelism extends core.Schema<ParallelismArgs> {
    count?: number | core.NumberOut;
}
export interface KinesisFirehoseArgs extends core.SchemaArgs {
    resourceArn: string | core.StringOut;
    roleArn: string | core.StringOut;
}
export declare class KinesisFirehose extends core.Schema<KinesisFirehoseArgs> {
    resourceArn: string | core.StringOut;
    roleArn: string | core.StringOut;
}
export interface KinesisStreamArgs extends core.SchemaArgs {
    resourceArn: string | core.StringOut;
    roleArn: string | core.StringOut;
}
export declare class KinesisStream extends core.Schema<KinesisStreamArgs> {
    resourceArn: string | core.StringOut;
    roleArn: string | core.StringOut;
}
export interface StartingPositionConfigurationArgs extends core.SchemaArgs {
    startingPosition?: string | core.StringOut;
}
export declare class StartingPositionConfiguration extends core.Schema<StartingPositionConfigurationArgs> {
    startingPosition?: string | core.StringOut;
}
export interface LambdaArgs extends core.SchemaArgs {
    resourceArn: string | core.StringOut;
    roleArn: string | core.StringOut;
}
export declare class Lambda extends core.Schema<LambdaArgs> {
    resourceArn: string | core.StringOut;
    roleArn: string | core.StringOut;
}
export interface ProcessingConfigurationArgs extends core.SchemaArgs {
    lambda: Lambda;
}
export declare class ProcessingConfiguration extends core.Schema<ProcessingConfigurationArgs> {
    lambda: Lambda;
}
export interface RecordColumnsArgs extends core.SchemaArgs {
    mapping?: string | core.StringOut;
    name: string | core.StringOut;
    sqlType: string | core.StringOut;
}
export declare class RecordColumns extends core.Schema<RecordColumnsArgs> {
    mapping?: string | core.StringOut;
    name: string | core.StringOut;
    sqlType: string | core.StringOut;
}
export interface CsvArgs extends core.SchemaArgs {
    recordColumnDelimiter: string | core.StringOut;
    recordRowDelimiter: string | core.StringOut;
}
export declare class Csv extends core.Schema<CsvArgs> {
    recordColumnDelimiter: string | core.StringOut;
    recordRowDelimiter: string | core.StringOut;
}
export interface JsonArgs extends core.SchemaArgs {
    recordRowPath: string | core.StringOut;
}
export declare class Json extends core.Schema<JsonArgs> {
    recordRowPath: string | core.StringOut;
}
export interface MappingParametersArgs extends core.SchemaArgs {
    csv?: Csv;
    json?: Json;
}
export declare class MappingParameters extends core.Schema<MappingParametersArgs> {
    csv?: Csv;
    json?: Json;
}
export interface RecordFormatArgs extends core.SchemaArgs {
    mappingParameters?: MappingParameters;
    recordFormatType: string | core.StringOut;
}
export declare class RecordFormat extends core.Schema<RecordFormatArgs> {
    mappingParameters?: MappingParameters;
    recordFormatType: string | core.StringOut;
}
export interface InputsSchemaArgs extends core.SchemaArgs {
    recordColumns: core.Array<RecordColumns> | core.ArrayOut<RecordColumns>;
    recordEncoding?: string | core.StringOut;
    recordFormat: RecordFormat;
}
export declare class InputsSchema extends core.Schema<InputsSchemaArgs> {
    recordColumns: core.Array<RecordColumns> | core.ArrayOut<RecordColumns>;
    recordEncoding?: string | core.StringOut;
    recordFormat: RecordFormat;
}
export interface InputsArgs extends core.SchemaArgs {
    id: string | core.StringOut;
    kinesisFirehose?: KinesisFirehose;
    kinesisStream?: KinesisStream;
    namePrefix: string | core.StringOut;
    parallelism?: Parallelism;
    processingConfiguration?: ProcessingConfiguration;
    schema: InputsSchema;
    startingPositionConfiguration?: core.Array<StartingPositionConfiguration> | core.ArrayOut<StartingPositionConfiguration>;
    streamNames: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export declare class Inputs extends core.Schema<InputsArgs> {
    id: string | core.StringOut;
    kinesisFirehose?: KinesisFirehose;
    kinesisStream?: KinesisStream;
    namePrefix: string | core.StringOut;
    parallelism?: Parallelism;
    processingConfiguration?: ProcessingConfiguration;
    schema: InputsSchema;
    startingPositionConfiguration?: core.Array<StartingPositionConfiguration> | core.ArrayOut<StartingPositionConfiguration>;
    streamNames: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export interface S3Args extends core.SchemaArgs {
    bucketArn: string | core.StringOut;
    fileKey: string | core.StringOut;
    roleArn: string | core.StringOut;
}
export declare class S3 extends core.Schema<S3Args> {
    bucketArn: string | core.StringOut;
    fileKey: string | core.StringOut;
    roleArn: string | core.StringOut;
}
export interface ReferenceDataSourcesArgs extends core.SchemaArgs {
    id: string | core.StringOut;
    s3: S3;
    schema: InputsSchema;
    tableName: string | core.StringOut;
}
export declare class ReferenceDataSources extends core.Schema<ReferenceDataSourcesArgs> {
    id: string | core.StringOut;
    s3: S3;
    schema: InputsSchema;
    tableName: string | core.StringOut;
}
export interface OutputsSchemaArgs extends core.SchemaArgs {
    recordFormatType: string | core.StringOut;
}
export declare class OutputsSchema extends core.Schema<OutputsSchemaArgs> {
    recordFormatType: string | core.StringOut;
}
export interface OutputsArgs extends core.SchemaArgs {
    id: string | core.StringOut;
    kinesisFirehose?: KinesisFirehose;
    kinesisStream?: KinesisStream;
    lambda?: Lambda;
    name: string | core.StringOut;
    schema: OutputsSchema;
}
export declare class Outputs extends core.Schema<OutputsArgs> {
    id: string | core.StringOut;
    kinesisFirehose?: KinesisFirehose;
    kinesisStream?: KinesisStream;
    lambda?: Lambda;
    name: string | core.StringOut;
    schema: OutputsSchema;
}
export interface CloudwatchLoggingOptionsArgs extends core.SchemaArgs {
    id: string | core.StringOut;
    logStreamArn: string | core.StringOut;
    roleArn: string | core.StringOut;
}
export declare class CloudwatchLoggingOptions extends core.Schema<CloudwatchLoggingOptionsArgs> {
    id: string | core.StringOut;
    logStreamArn: string | core.StringOut;
    roleArn: string | core.StringOut;
}
export interface ApplicationArgs extends core.ResourceArgs {
    cloudwatchLoggingOptions?: CloudwatchLoggingOptions;
    code?: string | core.StringOut;
    description?: string | core.StringOut;
    inputs?: Inputs;
    name: string | core.StringOut;
    outputs?: core.Array<Outputs> | core.ArrayOut<Outputs>;
    referenceDataSources?: ReferenceDataSources;
    startApplication?: boolean | core.BooleanOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
}
export declare class Application extends core.Resource<ApplicationArgs> {
    arn: string | core.StringOut;
    cloudwatchLoggingOptions?: CloudwatchLoggingOptions;
    code?: string | core.StringOut;
    createTimestamp: string | core.StringOut;
    description?: string | core.StringOut;
    id: string | core.StringOut;
    inputs?: Inputs;
    lastUpdateTimestamp: string | core.StringOut;
    name: string | core.StringOut;
    outputs?: core.Array<Outputs> | core.ArrayOut<Outputs>;
    referenceDataSources?: ReferenceDataSources;
    startApplication?: boolean | core.BooleanOut;
    status: string | core.StringOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    version: number | core.NumberOut;
    constructor(name: string, args?: ApplicationArgs);
    getNamespace(): string;
}
//# sourceMappingURL=application.d.ts.map