export interface ScheduleConfiguration {
    /** An expression that denotes when to trigger the scheduled query run. This can be a cron expression or a rate expression. */
    ScheduleExpression: string;
}
export interface SnsConfiguration {
    /** SNS topic ARN that the scheduled query status notifications will be sent to. */
    TopicArn: string;
}
export interface NotificationConfiguration {
    /** Details about the Amazon Simple Notification Service (SNS) configuration. This field is visible only when SNS Topic is provided when updating the account settings. */
    SnsConfiguration: SnsConfiguration;
}
export interface TimestreamConfiguration {
    /** Name of Timestream database to which the query result will be written. */
    DatabaseName: string;
    /** Name of Timestream table that the query result will be written to. The table should be within the same database that is provided in Timestream configuration. */
    TableName: string;
    /** Column from query result that should be used as the time column in destination table. Column type for this should be TIMESTAMP. */
    TimeColumn: string;
    /** This is to allow mapping column(s) from the query result to the dimension in the destination table. */
    DimensionMappings: any[];
    /** Multi-measure mappings. */
    MultiMeasureMappings?: any;
    /** Specifies how to map measures to multi-measure records. */
    MixedMeasureMappings?: any[];
    /** Name of the measure column. */
    MeasureNameColumn?: string;
}
export interface TargetConfiguration {
    /** Configuration needed to write data into the Timestream database and table. */
    TimestreamConfiguration: TimestreamConfiguration;
}
export interface Tag {
    /** The key of the tag. Tag keys are case sensitive. */
    Key: string;
    /** The value of the tag. Tag values are case sensitive and can be null. */
    Value: string;
}
export interface S3Configuration {
    /** Name of the S3 bucket under which error reports will be created. */
    BucketName: string;
    /** Prefix for the error report key. Timestream by default adds the following prefix to the error report path. */
    ObjectKeyPrefix?: string;
    /** Encryption at rest options for the error reports. If no encryption option is specified, Timestream will choose SSE_S3 as default. */
    EncryptionOption?: 'SSE_S3' | 'SSE_KMS';
}
export interface ErrorReportConfiguration {
    /** The S3 configuration for the error reports. */
    S3Configuration: S3Configuration;
}
export interface ScheduledQueryInsights {
    /** Provides the following modes to enable ScheduledQueryInsights: ENABLED_WITH_RATE_CONTROL – Enables ScheduledQueryInsights for the queries being processed. This mode also includes a rate control mechan */
    Mode: 'ENABLED_WITH_RATE_CONTROL' | 'DISABLED';
}
export interface QueryInsights {
    /** Provides the following modes to enable QueryInsights: ENABLED_WITH_RATE_CONTROL – Enables QueryInsights for the queries being processed. This mode also includes a rate control mechanism, which limits  */
    Mode: 'ENABLED_WITH_RATE_CONTROL' | 'DISABLED';
}
export interface ProvisionedCapacityRequest {
    /** The target compute capacity for querying data, specified in Timestream Compute Units (TCUs). */
    TargetQueryTCU: number;
    /** Configuration settings for notifications related to the provisioned capacity update. */
    NotificationConfiguration?: any;
}
export interface QueryComputeRequest {
    /** The mode in which Timestream Compute Units (TCUs) are allocated and utilized within an account. Note that in the Asia Pacific (Mumbai) region, the API operation only recognizes the value PROVISIONED. */
    ComputeMode?: 'ON_DEMAND' | 'PROVISIONED';
    /** Configuration object that contains settings for provisioned Timestream Compute Units (TCUs) in your account. */
    ProvisionedCapacity?: ProvisionedCapacityRequest;
}
export interface CancelQueryInput {
    /** The ID of the query that needs to be cancelled. QueryID is returned as part of the query result. */
    QueryId: string;
}
export interface CreateScheduledQueryInput {
    /** Configuration for error reporting. Error reports will be generated when a problem is encountered when writing the query results. */
    ErrorReportConfiguration: ErrorReportConfiguration;
    /** Name of the scheduled query. */
    Name: string;
    /** Notification configuration for the scheduled query. A notification is sent by Timestream when a query run finishes, when the state is updated or when you delete it. */
    NotificationConfiguration: NotificationConfiguration;
    /** The query string to run. Parameter names can be specified in the query string @ character followed by an identifier. The named Parameter @scheduled_runtime is reserved and can be used in the query to  */
    QueryString: string;
    /** The schedule configuration for the query. */
    ScheduleConfiguration: ScheduleConfiguration;
    /** The ARN for the IAM role that Timestream will assume when running the scheduled query. */
    ScheduledQueryExecutionRoleArn: string;
    /** Using a ClientToken makes the call to CreateScheduledQuery idempotent, in other words, making the same request repeatedly will produce the same result. Making multiple identical CreateScheduledQuery r */
    ClientToken?: string;
    /** The Amazon KMS key used to encrypt the scheduled query resource, at-rest. If the Amazon KMS key is not specified, the scheduled query resource will be encrypted with a Timestream owned Amazon KMS key. */
    KmsKeyId?: string;
    /** A list of key-value pairs to label the scheduled query. */
    Tags?: Tag[];
    /** Configuration used for writing the result of a query. */
    TargetConfiguration?: TargetConfiguration;
}
export interface DeleteScheduledQueryInput {
    /** The ARN of the scheduled query. */
    ScheduledQueryArn: string;
}
export interface DescribeScheduledQueryInput {
    /** The ARN of the scheduled query. */
    ScheduledQueryArn: string;
}
export interface ExecuteScheduledQueryInput {
    /** The timestamp in UTC. Query will be run as if it was invoked at this timestamp. */
    InvocationTime: string;
    /** ARN of the scheduled query. */
    ScheduledQueryArn: string;
    /** Not used. */
    ClientToken?: string;
    /** Encapsulates settings for enabling QueryInsights. Enabling QueryInsights returns insights and metrics as a part of the Amazon SNS notification for the query that you executed. You can use QueryInsight */
    QueryInsights?: ScheduledQueryInsights;
}
export interface ListScheduledQueriesInput {
    /** The maximum number of items to return in the output. If the total number of items available is more than the value specified, a NextToken is provided in the output. To resume pagination, provide the N */
    MaxResults?: number;
    /** A pagination token to resume pagination. */
    NextToken?: string;
}
export interface ListTagsForResourceInput {
    /** The Timestream resource with tags to be listed. This value is an Amazon Resource Name (ARN). */
    ResourceARN: string;
    /** The maximum number of tags to return. */
    MaxResults?: number;
    /** A pagination token to resume pagination. */
    NextToken?: string;
}
export interface PrepareQueryInput {
    /** The Timestream query string that you want to use as a prepared statement. Parameter names can be specified in the query string @ character followed by an identifier. */
    QueryString: string;
    /** By setting this value to true, Timestream will only validate that the query string is a valid Timestream query, and not store the prepared query for later use. */
    ValidateOnly?: boolean;
}
export interface QueryInput {
    /** The query to be run by Timestream. */
    QueryString: string;
    /** Unique, case-sensitive string of up to 64 ASCII characters specified when a Query request is made. Providing a ClientToken makes the call to Query idempotent. This means that running the same query re */
    ClientToken?: string;
    /** The total number of rows to be returned in the Query output. The initial run of Query with a MaxRows value specified will return the result set of the query in two cases: The size of the result is les */
    MaxRows?: number;
    /** A pagination token used to return a set of results. When the Query API is invoked using NextToken, that particular invocation is assumed to be a subsequent invocation of a prior call to Query, and a r */
    NextToken?: string;
    /** Encapsulates settings for enabling QueryInsights. Enabling QueryInsights returns insights and metrics in addition to query results for the query that you executed. You can use QueryInsights to tune yo */
    QueryInsights?: QueryInsights;
}
export interface TagResourceInput {
    /** Identifies the Timestream resource to which tags should be added. This value is an Amazon Resource Name (ARN). */
    ResourceARN: string;
    /** The tags to be assigned to the Timestream resource. */
    Tags: Tag[];
}
export interface UntagResourceInput {
    /** The Timestream resource that the tags will be removed from. This value is an Amazon Resource Name (ARN). */
    ResourceARN: string;
    /** A list of tags keys. Existing tags of the resource whose keys are members of this list will be removed from the Timestream resource. */
    TagKeys: string[];
}
export interface UpdateAccountSettingsInput {
    /** The maximum number of compute units the service will use at any point in time to serve your queries. To run queries, you must set a minimum capacity of 4 TCU. You can set the maximum number of TCU in  */
    MaxQueryTCU?: number;
    /** Modifies the query compute settings configured in your account, including the query pricing model and provisioned Timestream Compute Units (TCUs) in your account. This API is idempotent, meaning that  */
    QueryCompute?: QueryComputeRequest;
    /** The pricing model for queries in an account. The QueryPricingModel parameter is used by several Timestream operations; however, the UpdateAccountSettings API operation doesn't recognize any values oth */
    QueryPricingModel?: 'BYTES_SCANNED' | 'COMPUTE_UNITS';
}
export interface UpdateScheduledQueryInput {
    /** ARN of the scheuled query. */
    ScheduledQueryArn: string;
    /** State of the scheduled query. */
    State: 'ENABLED' | 'DISABLED';
}
/** Timestream Query service binding for Step Functions SDK integrations. */
export declare class TimestreamQuery {
    constructor();
    cancelQuery<T>(params: CancelQueryInput): Promise<T>;
    createScheduledQuery<T>(params: CreateScheduledQueryInput): Promise<T>;
    deleteScheduledQuery<T>(params: DeleteScheduledQueryInput): Promise<T>;
    describeAccountSettings<T>(params: Record<string, any>): Promise<T>;
    describeEndpoints<T>(params: Record<string, any>): Promise<T>;
    describeScheduledQuery<T>(params: DescribeScheduledQueryInput): Promise<T>;
    executeScheduledQuery<T>(params: ExecuteScheduledQueryInput): Promise<T>;
    listScheduledQueries<T>(params: ListScheduledQueriesInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    prepareQuery<T>(params: PrepareQueryInput): Promise<T>;
    query<T>(params: QueryInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateAccountSettings<T>(params: UpdateAccountSettingsInput): Promise<T>;
    updateScheduledQuery<T>(params: UpdateScheduledQueryInput): Promise<T>;
}
//# sourceMappingURL=TimestreamQuery.d.ts.map