export interface CloudWatchLoggingOption {
    /** ARN of the CloudWatch log to receive application messages. */
    LogStreamARN: string;
    /** IAM ARN of the role to use to send application messages. Note: To write application messages to CloudWatch, the IAM role that is used must have the PutLogEvents policy action enabled. */
    RoleARN: string;
}
export interface InputProcessingConfiguration {
    /** The InputLambdaProcessor that is used to preprocess the records in the stream before being processed by your application code. */
    InputLambdaProcessor: any;
}
export interface KinesisStreamsInput {
    /** ARN of the input Amazon Kinesis stream to read. */
    ResourceARN: string;
    /** ARN of the IAM role that Amazon Kinesis Analytics can assume to access the stream on your behalf. You need to grant the necessary permissions to this role. */
    RoleARN: string;
}
export interface KinesisFirehoseInput {
    /** ARN of the input delivery stream. */
    ResourceARN: string;
    /** ARN of the IAM role that Amazon Kinesis Analytics can assume to access the stream on your behalf. You need to make sure that the role has the necessary permissions to access the stream. */
    RoleARN: string;
}
export interface InputParallelism {
    /** Number of in-application streams to create. For more information, see Limits. */
    Count?: number;
}
export interface SourceSchema {
    /** Specifies the format of the records on the streaming source. */
    RecordFormat: any;
    /** Specifies the encoding of the records in the streaming source. For example, UTF-8. */
    RecordEncoding?: string;
    /** A list of RecordColumn objects. */
    RecordColumns: any[];
}
export interface Input {
    /** Name prefix to use when creating an in-application stream. Suppose that you specify a prefix "MyInApplicationStream." Amazon Kinesis Analytics then creates one or more (as per the InputParallelism cou */
    NamePrefix: string;
    /** The InputProcessingConfiguration for the input. An input processor transforms records as they are received from the stream, before the application's SQL code executes. Currently, the only input proces */
    InputProcessingConfiguration?: InputProcessingConfiguration;
    /** If the streaming source is an Amazon Kinesis stream, identifies the stream's Amazon Resource Name (ARN) and an IAM role that enables Amazon Kinesis Analytics to access the stream on your behalf. Note: */
    KinesisStreamsInput?: KinesisStreamsInput;
    /** If the streaming source is an Amazon Kinesis Firehose delivery stream, identifies the delivery stream's ARN and an IAM role that enables Amazon Kinesis Analytics to access the stream on your behalf. N */
    KinesisFirehoseInput?: KinesisFirehoseInput;
    /** Describes the number of in-application streams to create. Data from your source is routed to these in-application input streams. (see Configuring Application Input. */
    InputParallelism?: InputParallelism;
    /** Describes the format of the data in the streaming source, and how each data element maps to corresponding columns in the in-application stream that is being created. Also used to describe the format o */
    InputSchema: SourceSchema;
}
export interface KinesisStreamsOutput {
    /** ARN of the destination Amazon Kinesis stream to write to. */
    ResourceARN: string;
    /** ARN of the IAM role that Amazon Kinesis Analytics can assume to write to the destination stream on your behalf. You need to grant the necessary permissions to this role. */
    RoleARN: string;
}
export interface KinesisFirehoseOutput {
    /** ARN of the destination Amazon Kinesis Firehose delivery stream to write to. */
    ResourceARN: string;
    /** ARN of the IAM role that Amazon Kinesis Analytics can assume to write to the destination stream on your behalf. You need to grant the necessary permissions to this role. */
    RoleARN: string;
}
export interface LambdaOutput {
    /** Amazon Resource Name (ARN) of the destination Lambda function to write to. To specify an earlier version of the Lambda function than the latest, include the Lambda function version in the Lambda funct */
    ResourceARN: string;
    /** ARN of the IAM role that Amazon Kinesis Analytics can assume to write to the destination function on your behalf. You need to grant the necessary permissions to this role. */
    RoleARN: string;
}
export interface DestinationSchema {
    /** Specifies the format of the records on the output stream. */
    RecordFormatType: 'JSON' | 'CSV';
}
export interface Output {
    /** Name of the in-application stream. */
    Name: string;
    /** Identifies an Amazon Kinesis stream as the destination. */
    KinesisStreamsOutput?: KinesisStreamsOutput;
    /** Identifies an Amazon Kinesis Firehose delivery stream as the destination. */
    KinesisFirehoseOutput?: KinesisFirehoseOutput;
    /** Identifies an AWS Lambda function as the destination. */
    LambdaOutput?: LambdaOutput;
    /** Describes the data format when records are written to the destination. For more information, see Configuring Application Output. */
    DestinationSchema: DestinationSchema;
}
export interface S3ReferenceDataSource {
    /** Amazon Resource Name (ARN) of the S3 bucket. */
    BucketARN: string;
    /** Object key name containing reference data. */
    FileKey: string;
    /** ARN of the IAM role that the service can assume to read data on your behalf. This role must have permission for the s3:GetObject action on the object and trust policy that allows Amazon Kinesis Analyt */
    ReferenceRoleARN: string;
}
export interface ReferenceDataSource {
    /** Name of the in-application table to create. */
    TableName: string;
    /** Identifies the S3 bucket and object that contains the reference data. Also identifies the IAM role Amazon Kinesis Analytics can assume to read this object on your behalf. An Amazon Kinesis Analytics a */
    S3ReferenceDataSource?: S3ReferenceDataSource;
    /** Describes the format of the data in the streaming source, and how each data element maps to corresponding columns created in the in-application stream. */
    ReferenceSchema: SourceSchema;
}
export interface Tag {
    /** The key of the key-value tag. */
    Key: string;
    /** The value of the key-value tag. The value is optional. */
    Value?: string;
}
export interface InputStartingPositionConfiguration {
    /** The starting position on the stream. NOW - Start reading just after the most recent record in the stream, start at the request time stamp that the customer issued. TRIM_HORIZON - Start reading at the  */
    InputStartingPosition?: 'NOW' | 'TRIM_HORIZON' | 'LAST_STOPPED_POINT';
}
export interface S3Configuration {
    /** IAM ARN of the role used to access the data. */
    RoleARN: string;
    /** ARN of the S3 bucket that contains the data. */
    BucketARN: string;
    /** The name of the object that contains the data. */
    FileKey: string;
}
export interface InputConfiguration {
    /** Input source ID. You can get this ID by calling the DescribeApplication operation. */
    Id: string;
    /** Point at which you want the application to start processing records from the streaming source. */
    InputStartingPositionConfiguration: any;
}
export interface ApplicationUpdate {
    /** Describes application input configuration updates. */
    InputUpdates?: any[];
    /** Describes application code updates. */
    ApplicationCodeUpdate?: string;
    /** Describes application output configuration updates. */
    OutputUpdates?: any[];
    /** Describes application reference data source updates. */
    ReferenceDataSourceUpdates?: any[];
    /** Describes application CloudWatch logging option updates. */
    CloudWatchLoggingOptionUpdates?: any[];
}
export interface AddApplicationCloudWatchLoggingOptionInput {
    /** The Kinesis Analytics application name. */
    ApplicationName: string;
    /** Provides the CloudWatch log stream Amazon Resource Name (ARN) and the IAM role ARN. Note: To write application messages to CloudWatch, the IAM role that is used must have the PutLogEvents policy actio */
    CloudWatchLoggingOption: CloudWatchLoggingOption;
    /** The version ID of the Kinesis Analytics application. */
    CurrentApplicationVersionId: number;
}
export interface AddApplicationInputInput {
    /** Name of your existing Amazon Kinesis Analytics application to which you want to add the streaming source. */
    ApplicationName: string;
    /** Current version of your Amazon Kinesis Analytics application. You can use the DescribeApplication operation to find the current application version. */
    CurrentApplicationVersionId: number;
    /** The Input to add. */
    Input: Input;
}
export interface AddApplicationInputProcessingConfigurationInput {
    /** Name of the application to which you want to add the input processing configuration. */
    ApplicationName: string;
    /** Version of the application to which you want to add the input processing configuration. You can use the DescribeApplication operation to get the current application version. If the version specified i */
    CurrentApplicationVersionId: number;
    /** The ID of the input configuration to add the input processing configuration to. You can get a list of the input IDs for an application using the DescribeApplication operation. */
    InputId: string;
    /** The InputProcessingConfiguration to add to the application. */
    InputProcessingConfiguration: InputProcessingConfiguration;
}
export interface AddApplicationOutputInput {
    /** Name of the application to which you want to add the output configuration. */
    ApplicationName: string;
    /** Version of the application to which you want to add the output configuration. You can use the DescribeApplication operation to get the current application version. If the version specified is not the  */
    CurrentApplicationVersionId: number;
    /** An array of objects, each describing one output configuration. In the output configuration, you specify the name of an in-application stream, a destination (that is, an Amazon Kinesis stream, an Amazo */
    Output: Output;
}
export interface AddApplicationReferenceDataSourceInput {
    /** Name of an existing application. */
    ApplicationName: string;
    /** Version of the application for which you are adding the reference data source. You can use the DescribeApplication operation to get the current application version. If the version specified is not the */
    CurrentApplicationVersionId: number;
    /** The reference data source can be an object in your Amazon S3 bucket. Amazon Kinesis Analytics reads the object and copies the data into the in-application table that is created. You provide an S3 buck */
    ReferenceDataSource: ReferenceDataSource;
}
/** TBD */
export interface CreateApplicationInput {
    /** Name of your Amazon Kinesis Analytics application (for example, sample-app). */
    ApplicationName: string;
    /** One or more SQL statements that read input data, transform it, and generate output. For example, you can write a SQL statement that reads data from one in-application stream, generates a running avera */
    ApplicationCode?: string;
    /** Summary description of the application. */
    ApplicationDescription?: string;
    /** Use this parameter to configure a CloudWatch log stream to monitor application configuration errors. For more information, see Working with Amazon CloudWatch Logs. */
    CloudWatchLoggingOptions?: CloudWatchLoggingOption[];
    /** Use this parameter to configure the application input. You can configure your application to receive input from a single streaming source. In this configuration, you map this streaming source to an in */
    Inputs?: Input[];
    /** You can configure application output to write data from any of the in-application streams to up to three destinations. These destinations can be Amazon Kinesis streams, Amazon Kinesis Firehose deliver */
    Outputs?: Output[];
    /** A list of one or more tags to assign to the application. A tag is a key-value pair that identifies an application. Note that the maximum number of application tags includes system tags. The maximum nu */
    Tags?: Tag[];
}
export interface DeleteApplicationInput {
    /** Name of the Amazon Kinesis Analytics application to delete. */
    ApplicationName: string;
    /** You can use the DescribeApplication operation to get this value. */
    CreateTimestamp: string;
}
export interface DeleteApplicationCloudWatchLoggingOptionInput {
    /** The Kinesis Analytics application name. */
    ApplicationName: string;
    /** The CloudWatchLoggingOptionId of the CloudWatch logging option to delete. You can get the CloudWatchLoggingOptionId by using the DescribeApplication operation. */
    CloudWatchLoggingOptionId: string;
    /** The version ID of the Kinesis Analytics application. */
    CurrentApplicationVersionId: number;
}
export interface DeleteApplicationInputProcessingConfigurationInput {
    /** The Kinesis Analytics application name. */
    ApplicationName: string;
    /** The version ID of the Kinesis Analytics application. */
    CurrentApplicationVersionId: number;
    /** The ID of the input configuration from which to delete the input processing configuration. You can get a list of the input IDs for an application by using the DescribeApplication operation. */
    InputId: string;
}
export interface DeleteApplicationOutputInput {
    /** Amazon Kinesis Analytics application name. */
    ApplicationName: string;
    /** Amazon Kinesis Analytics application version. You can use the DescribeApplication operation to get the current application version. If the version specified is not the current version, the ConcurrentM */
    CurrentApplicationVersionId: number;
    /** The ID of the configuration to delete. Each output configuration that is added to the application, either when the application is created or later using the AddApplicationOutput operation, has a uniqu */
    OutputId: string;
}
export interface DeleteApplicationReferenceDataSourceInput {
    /** Name of an existing application. */
    ApplicationName: string;
    /** Version of the application. You can use the DescribeApplication operation to get the current application version. If the version specified is not the current version, the ConcurrentModificationExcepti */
    CurrentApplicationVersionId: number;
    /** ID of the reference data source. When you add a reference data source to your application using the AddApplicationReferenceDataSource, Amazon Kinesis Analytics assigns an ID. You can use the DescribeA */
    ReferenceId: string;
}
export interface DescribeApplicationInput {
    /** Name of the application. */
    ApplicationName: string;
}
export interface DiscoverInputSchemaInput {
    /** The InputProcessingConfiguration to use to preprocess the records before discovering the schema of the records. */
    InputProcessingConfiguration?: InputProcessingConfiguration;
    /** Point at which you want Amazon Kinesis Analytics to start reading records from the specified streaming source discovery purposes. */
    InputStartingPositionConfiguration?: InputStartingPositionConfiguration;
    /** Amazon Resource Name (ARN) of the streaming source. */
    ResourceARN?: string;
    /** ARN of the IAM role that Amazon Kinesis Analytics can assume to access the stream on your behalf. */
    RoleARN?: string;
    /** Specify this parameter to discover a schema from data in an Amazon S3 object. */
    S3Configuration?: S3Configuration;
}
export interface ListApplicationsInput {
    /** Name of the application to start the list with. When using pagination to retrieve the list, you don't need to specify this parameter in the first request. However, in subsequent requests, you add the  */
    ExclusiveStartApplicationName?: string;
    /** Maximum number of applications to list. */
    Limit?: number;
}
export interface ListTagsForResourceInput {
    /** The ARN of the application for which to retrieve tags. */
    ResourceARN: string;
}
export interface StartApplicationInput {
    /** Name of the application. */
    ApplicationName: string;
    /** Identifies the specific input, by ID, that the application starts consuming. Amazon Kinesis Analytics starts reading the streaming source associated with the input. You can also specify where in the s */
    InputConfigurations: InputConfiguration[];
}
export interface StopApplicationInput {
    /** Name of the running application to stop. */
    ApplicationName: string;
}
export interface TagResourceInput {
    /** The ARN of the application to assign the tags. */
    ResourceARN: string;
    /** The key-value tags to assign to the application. */
    Tags: Tag[];
}
export interface UntagResourceInput {
    /** The ARN of the Kinesis Analytics application from which to remove the tags. */
    ResourceARN: string;
    /** A list of keys of tags to remove from the specified application. */
    TagKeys: string[];
}
export interface UpdateApplicationInput {
    /** Name of the Amazon Kinesis Analytics application to update. */
    ApplicationName: string;
    /** Describes application updates. */
    ApplicationUpdate: ApplicationUpdate;
    /** The current application version ID. You can use the DescribeApplication operation to get this value. */
    CurrentApplicationVersionId: number;
}
/** Kinesis Analytics service binding for Step Functions SDK integrations. */
export declare class KinesisAnalytics {
    constructor();
    addApplicationCloudWatchLoggingOption<T>(params: AddApplicationCloudWatchLoggingOptionInput): Promise<T>;
    addApplicationInput<T>(params: AddApplicationInputInput): Promise<T>;
    addApplicationInputProcessingConfiguration<T>(params: AddApplicationInputProcessingConfigurationInput): Promise<T>;
    addApplicationOutput<T>(params: AddApplicationOutputInput): Promise<T>;
    addApplicationReferenceDataSource<T>(params: AddApplicationReferenceDataSourceInput): Promise<T>;
    createApplication<T>(params: CreateApplicationInput): Promise<T>;
    deleteApplication<T>(params: DeleteApplicationInput): Promise<T>;
    deleteApplicationCloudWatchLoggingOption<T>(params: DeleteApplicationCloudWatchLoggingOptionInput): Promise<T>;
    deleteApplicationInputProcessingConfiguration<T>(params: DeleteApplicationInputProcessingConfigurationInput): Promise<T>;
    deleteApplicationOutput<T>(params: DeleteApplicationOutputInput): Promise<T>;
    deleteApplicationReferenceDataSource<T>(params: DeleteApplicationReferenceDataSourceInput): Promise<T>;
    describeApplication<T>(params: DescribeApplicationInput): Promise<T>;
    discoverInputSchema<T>(params: DiscoverInputSchemaInput): Promise<T>;
    listApplications<T>(params: ListApplicationsInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    startApplication<T>(params: StartApplicationInput): Promise<T>;
    stopApplication<T>(params: StopApplicationInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateApplication<T>(params: UpdateApplicationInput): Promise<T>;
}
//# sourceMappingURL=KinesisAnalytics.d.ts.map