import * as core from "@terrascript/core";
export interface VpcConfigurationArgs extends core.SchemaArgs {
    securityGroupIds: core.Array<string> | core.ArrayOut<core.StringOut>;
    subnetIds: core.Array<string> | core.ArrayOut<core.StringOut>;
    vpcConfigurationId: string | core.StringOut;
    vpcId: string | core.StringOut;
}
export declare class VpcConfiguration extends core.Schema<VpcConfigurationArgs> {
    securityGroupIds: core.Array<string> | core.ArrayOut<core.StringOut>;
    subnetIds: core.Array<string> | core.ArrayOut<core.StringOut>;
    vpcConfigurationId: string | core.StringOut;
    vpcId: string | core.StringOut;
}
export interface S3ContentLocationArgs extends core.SchemaArgs {
    bucketArn: string | core.StringOut;
    fileKey: string | core.StringOut;
    objectVersion?: string | core.StringOut;
}
export declare class S3ContentLocation extends core.Schema<S3ContentLocationArgs> {
    bucketArn: string | core.StringOut;
    fileKey: string | core.StringOut;
    objectVersion?: string | core.StringOut;
}
export interface CodeContentArgs extends core.SchemaArgs {
    s3ContentLocation?: S3ContentLocation;
    textContent?: string | core.StringOut;
}
export declare class CodeContent extends core.Schema<CodeContentArgs> {
    s3ContentLocation?: S3ContentLocation;
    textContent?: string | core.StringOut;
}
export interface ApplicationCodeConfigurationArgs extends core.SchemaArgs {
    codeContent?: CodeContent;
    codeContentType: string | core.StringOut;
}
export declare class ApplicationCodeConfiguration extends core.Schema<ApplicationCodeConfigurationArgs> {
    codeContent?: CodeContent;
    codeContentType: string | core.StringOut;
}
export interface ApplicationSnapshotConfigurationArgs extends core.SchemaArgs {
    snapshotsEnabled: boolean | core.BooleanOut;
}
export declare class ApplicationSnapshotConfiguration extends core.Schema<ApplicationSnapshotConfigurationArgs> {
    snapshotsEnabled: boolean | core.BooleanOut;
}
export interface PropertyGroupArgs extends core.SchemaArgs {
    propertyGroupId: string | core.StringOut;
    propertyMap: core.Map<string, string> | core.MapOut<core.StringOut>;
}
export declare class PropertyGroup extends core.Schema<PropertyGroupArgs> {
    propertyGroupId: string | core.StringOut;
    propertyMap: core.Map<string, string> | core.MapOut<core.StringOut>;
}
export interface EnvironmentPropertiesArgs extends core.SchemaArgs {
    propertyGroup: core.Array<PropertyGroup> | core.ArrayOut<PropertyGroup>;
}
export declare class EnvironmentProperties extends core.Schema<EnvironmentPropertiesArgs> {
    propertyGroup: core.Array<PropertyGroup> | core.ArrayOut<PropertyGroup>;
}
export interface MonitoringConfigurationArgs extends core.SchemaArgs {
    configurationType: string | core.StringOut;
    logLevel?: string | core.StringOut;
    metricsLevel?: string | core.StringOut;
}
export declare class MonitoringConfiguration extends core.Schema<MonitoringConfigurationArgs> {
    configurationType: string | core.StringOut;
    logLevel?: string | core.StringOut;
    metricsLevel?: string | core.StringOut;
}
export interface ParallelismConfigurationArgs extends core.SchemaArgs {
    autoScalingEnabled?: boolean | core.BooleanOut;
    configurationType: string | core.StringOut;
    parallelism?: number | core.NumberOut;
    parallelismPerKpu?: number | core.NumberOut;
}
export declare class ParallelismConfiguration extends core.Schema<ParallelismConfigurationArgs> {
    autoScalingEnabled?: boolean | core.BooleanOut;
    configurationType: string | core.StringOut;
    parallelism?: number | core.NumberOut;
    parallelismPerKpu?: number | core.NumberOut;
}
export interface CheckpointConfigurationArgs extends core.SchemaArgs {
    checkpointInterval?: number | core.NumberOut;
    checkpointingEnabled?: boolean | core.BooleanOut;
    configurationType: string | core.StringOut;
    minPauseBetweenCheckpoints?: number | core.NumberOut;
}
export declare class CheckpointConfiguration extends core.Schema<CheckpointConfigurationArgs> {
    checkpointInterval?: number | core.NumberOut;
    checkpointingEnabled?: boolean | core.BooleanOut;
    configurationType: string | core.StringOut;
    minPauseBetweenCheckpoints?: number | core.NumberOut;
}
export interface FlinkApplicationConfigurationArgs extends core.SchemaArgs {
    checkpointConfiguration?: CheckpointConfiguration;
    monitoringConfiguration?: MonitoringConfiguration;
    parallelismConfiguration?: ParallelismConfiguration;
}
export declare class FlinkApplicationConfiguration extends core.Schema<FlinkApplicationConfigurationArgs> {
    checkpointConfiguration?: CheckpointConfiguration;
    monitoringConfiguration?: MonitoringConfiguration;
    parallelismConfiguration?: ParallelismConfiguration;
}
export interface ApplicationRestoreConfigurationArgs extends core.SchemaArgs {
    applicationRestoreType?: string | core.StringOut;
    snapshotName?: string | core.StringOut;
}
export declare class ApplicationRestoreConfiguration extends core.Schema<ApplicationRestoreConfigurationArgs> {
    applicationRestoreType?: string | core.StringOut;
    snapshotName?: string | core.StringOut;
}
export interface FlinkRunConfigurationArgs extends core.SchemaArgs {
    allowNonRestoredState?: boolean | core.BooleanOut;
}
export declare class FlinkRunConfiguration extends core.Schema<FlinkRunConfigurationArgs> {
    allowNonRestoredState?: boolean | core.BooleanOut;
}
export interface RunConfigurationArgs extends core.SchemaArgs {
    applicationRestoreConfiguration?: ApplicationRestoreConfiguration;
    flinkRunConfiguration?: FlinkRunConfiguration;
}
export declare class RunConfiguration extends core.Schema<RunConfigurationArgs> {
    applicationRestoreConfiguration?: ApplicationRestoreConfiguration;
    flinkRunConfiguration?: FlinkRunConfiguration;
}
export interface KinesisStreamsInputArgs extends core.SchemaArgs {
    resourceArn: string | core.StringOut;
}
export declare class KinesisStreamsInput extends core.Schema<KinesisStreamsInputArgs> {
    resourceArn: string | core.StringOut;
}
export interface InputParallelismArgs extends core.SchemaArgs {
    count?: number | core.NumberOut;
}
export declare class InputParallelism extends core.Schema<InputParallelismArgs> {
    count?: number | core.NumberOut;
}
export interface KinesisFirehoseInputArgs extends core.SchemaArgs {
    resourceArn: string | core.StringOut;
}
export declare class KinesisFirehoseInput extends core.Schema<KinesisFirehoseInputArgs> {
    resourceArn: string | core.StringOut;
}
export interface RecordColumnArgs extends core.SchemaArgs {
    mapping?: string | core.StringOut;
    name: string | core.StringOut;
    sqlType: string | core.StringOut;
}
export declare class RecordColumn extends core.Schema<RecordColumnArgs> {
    mapping?: string | core.StringOut;
    name: string | core.StringOut;
    sqlType: string | core.StringOut;
}
export interface CsvMappingParametersArgs extends core.SchemaArgs {
    recordColumnDelimiter: string | core.StringOut;
    recordRowDelimiter: string | core.StringOut;
}
export declare class CsvMappingParameters extends core.Schema<CsvMappingParametersArgs> {
    recordColumnDelimiter: string | core.StringOut;
    recordRowDelimiter: string | core.StringOut;
}
export interface JsonMappingParametersArgs extends core.SchemaArgs {
    recordRowPath: string | core.StringOut;
}
export declare class JsonMappingParameters extends core.Schema<JsonMappingParametersArgs> {
    recordRowPath: string | core.StringOut;
}
export interface MappingParametersArgs extends core.SchemaArgs {
    csvMappingParameters?: CsvMappingParameters;
    jsonMappingParameters?: JsonMappingParameters;
}
export declare class MappingParameters extends core.Schema<MappingParametersArgs> {
    csvMappingParameters?: CsvMappingParameters;
    jsonMappingParameters?: JsonMappingParameters;
}
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 InputSchemaArgs extends core.SchemaArgs {
    recordColumn: core.Array<RecordColumn> | core.ArrayOut<RecordColumn>;
    recordEncoding?: string | core.StringOut;
    recordFormat: RecordFormat;
}
export declare class InputSchema extends core.Schema<InputSchemaArgs> {
    recordColumn: core.Array<RecordColumn> | core.ArrayOut<RecordColumn>;
    recordEncoding?: string | core.StringOut;
    recordFormat: RecordFormat;
}
export interface InputStartingPositionConfigurationArgs extends core.SchemaArgs {
    inputStartingPosition?: string | core.StringOut;
}
export declare class InputStartingPositionConfiguration extends core.Schema<InputStartingPositionConfigurationArgs> {
    inputStartingPosition?: string | core.StringOut;
}
export interface InputLambdaProcessorArgs extends core.SchemaArgs {
    resourceArn: string | core.StringOut;
}
export declare class InputLambdaProcessor extends core.Schema<InputLambdaProcessorArgs> {
    resourceArn: string | core.StringOut;
}
export interface InputProcessingConfigurationArgs extends core.SchemaArgs {
    inputLambdaProcessor: InputLambdaProcessor;
}
export declare class InputProcessingConfiguration extends core.Schema<InputProcessingConfigurationArgs> {
    inputLambdaProcessor: InputLambdaProcessor;
}
export interface InputArgs extends core.SchemaArgs {
    inAppStreamNames: core.Array<string> | core.ArrayOut<core.StringOut>;
    inputId: string | core.StringOut;
    inputParallelism?: InputParallelism;
    inputProcessingConfiguration?: InputProcessingConfiguration;
    inputSchema: InputSchema;
    inputStartingPositionConfiguration?: core.Array<InputStartingPositionConfiguration> | core.ArrayOut<InputStartingPositionConfiguration>;
    kinesisFirehoseInput?: KinesisFirehoseInput;
    kinesisStreamsInput?: KinesisStreamsInput;
    namePrefix: string | core.StringOut;
}
export declare class Input extends core.Schema<InputArgs> {
    inAppStreamNames: core.Array<string> | core.ArrayOut<core.StringOut>;
    inputId: string | core.StringOut;
    inputParallelism?: InputParallelism;
    inputProcessingConfiguration?: InputProcessingConfiguration;
    inputSchema: InputSchema;
    inputStartingPositionConfiguration?: core.Array<InputStartingPositionConfiguration> | core.ArrayOut<InputStartingPositionConfiguration>;
    kinesisFirehoseInput?: KinesisFirehoseInput;
    kinesisStreamsInput?: KinesisStreamsInput;
    namePrefix: string | core.StringOut;
}
export interface LambdaOutputArgs extends core.SchemaArgs {
    resourceArn: string | core.StringOut;
}
export declare class LambdaOutput extends core.Schema<LambdaOutputArgs> {
    resourceArn: string | core.StringOut;
}
export interface DestinationSchemaArgs extends core.SchemaArgs {
    recordFormatType: string | core.StringOut;
}
export declare class DestinationSchema extends core.Schema<DestinationSchemaArgs> {
    recordFormatType: string | core.StringOut;
}
export interface KinesisFirehoseOutputArgs extends core.SchemaArgs {
    resourceArn: string | core.StringOut;
}
export declare class KinesisFirehoseOutput extends core.Schema<KinesisFirehoseOutputArgs> {
    resourceArn: string | core.StringOut;
}
export interface KinesisStreamsOutputArgs extends core.SchemaArgs {
    resourceArn: string | core.StringOut;
}
export declare class KinesisStreamsOutput extends core.Schema<KinesisStreamsOutputArgs> {
    resourceArn: string | core.StringOut;
}
export interface OutputArgs extends core.SchemaArgs {
    destinationSchema: DestinationSchema;
    kinesisFirehoseOutput?: KinesisFirehoseOutput;
    kinesisStreamsOutput?: KinesisStreamsOutput;
    lambdaOutput?: LambdaOutput;
    name: string | core.StringOut;
    outputId: string | core.StringOut;
}
export declare class Output extends core.Schema<OutputArgs> {
    destinationSchema: DestinationSchema;
    kinesisFirehoseOutput?: KinesisFirehoseOutput;
    kinesisStreamsOutput?: KinesisStreamsOutput;
    lambdaOutput?: LambdaOutput;
    name: string | core.StringOut;
    outputId: string | core.StringOut;
}
export interface ReferenceSchemaArgs extends core.SchemaArgs {
    recordColumn: core.Array<RecordColumn> | core.ArrayOut<RecordColumn>;
    recordEncoding?: string | core.StringOut;
    recordFormat: RecordFormat;
}
export declare class ReferenceSchema extends core.Schema<ReferenceSchemaArgs> {
    recordColumn: core.Array<RecordColumn> | core.ArrayOut<RecordColumn>;
    recordEncoding?: string | core.StringOut;
    recordFormat: RecordFormat;
}
export interface S3ReferenceDataSourceArgs extends core.SchemaArgs {
    bucketArn: string | core.StringOut;
    fileKey: string | core.StringOut;
}
export declare class S3ReferenceDataSource extends core.Schema<S3ReferenceDataSourceArgs> {
    bucketArn: string | core.StringOut;
    fileKey: string | core.StringOut;
}
export interface ReferenceDataSourceArgs extends core.SchemaArgs {
    referenceId: string | core.StringOut;
    referenceSchema: ReferenceSchema;
    s3ReferenceDataSource: S3ReferenceDataSource;
    tableName: string | core.StringOut;
}
export declare class ReferenceDataSource extends core.Schema<ReferenceDataSourceArgs> {
    referenceId: string | core.StringOut;
    referenceSchema: ReferenceSchema;
    s3ReferenceDataSource: S3ReferenceDataSource;
    tableName: string | core.StringOut;
}
export interface SqlApplicationConfigurationArgs extends core.SchemaArgs {
    input?: Input;
    output?: core.Array<Output> | core.ArrayOut<Output>;
    referenceDataSource?: ReferenceDataSource;
}
export declare class SqlApplicationConfiguration extends core.Schema<SqlApplicationConfigurationArgs> {
    input?: Input;
    output?: core.Array<Output> | core.ArrayOut<Output>;
    referenceDataSource?: ReferenceDataSource;
}
export interface ApplicationConfigurationArgs extends core.SchemaArgs {
    applicationCodeConfiguration: ApplicationCodeConfiguration;
    applicationSnapshotConfiguration?: ApplicationSnapshotConfiguration;
    environmentProperties?: EnvironmentProperties;
    flinkApplicationConfiguration?: FlinkApplicationConfiguration;
    runConfiguration?: RunConfiguration;
    sqlApplicationConfiguration?: SqlApplicationConfiguration;
    vpcConfiguration?: VpcConfiguration;
}
export declare class ApplicationConfiguration extends core.Schema<ApplicationConfigurationArgs> {
    applicationCodeConfiguration: ApplicationCodeConfiguration;
    applicationSnapshotConfiguration?: ApplicationSnapshotConfiguration;
    environmentProperties?: EnvironmentProperties;
    flinkApplicationConfiguration?: FlinkApplicationConfiguration;
    runConfiguration?: RunConfiguration;
    sqlApplicationConfiguration?: SqlApplicationConfiguration;
    vpcConfiguration?: VpcConfiguration;
}
export interface CloudwatchLoggingOptionsArgs extends core.SchemaArgs {
    cloudwatchLoggingOptionId: string | core.StringOut;
    logStreamArn: string | core.StringOut;
}
export declare class CloudwatchLoggingOptions extends core.Schema<CloudwatchLoggingOptionsArgs> {
    cloudwatchLoggingOptionId: string | core.StringOut;
    logStreamArn: string | core.StringOut;
}
export interface ApplicationArgs extends core.ResourceArgs {
    applicationConfiguration?: ApplicationConfiguration;
    cloudwatchLoggingOptions?: CloudwatchLoggingOptions;
    description?: string | core.StringOut;
    forceStop?: boolean | core.BooleanOut;
    name: string | core.StringOut;
    runtimeEnvironment: string | core.StringOut;
    serviceExecutionRole: string | core.StringOut;
    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> {
    applicationConfiguration?: ApplicationConfiguration;
    arn: string | core.StringOut;
    cloudwatchLoggingOptions?: CloudwatchLoggingOptions;
    createTimestamp: string | core.StringOut;
    description?: string | core.StringOut;
    forceStop?: boolean | core.BooleanOut;
    id: string | core.StringOut;
    lastUpdateTimestamp: string | core.StringOut;
    name: string | core.StringOut;
    runtimeEnvironment: string | core.StringOut;
    serviceExecutionRole: string | core.StringOut;
    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>;
    versionId: number | core.NumberOut;
    constructor(name: string, args?: ApplicationArgs);
    getNamespace(): string;
}
//# sourceMappingURL=application.d.ts.map