export interface DataModel {
    /** Source column to be mapped to time. */
    TimeColumn?: string;
    /** The granularity of the timestamp unit. It indicates if the time value is in seconds, milliseconds, nanoseconds, or other supported values. Default is MILLISECONDS. */
    TimeUnit?: 'MILLISECONDS' | 'SECONDS' | 'MICROSECONDS' | 'NANOSECONDS';
    /** Source to target mappings for dimensions. */
    DimensionMappings: any[];
    /** Source to target mappings for multi-measure records. */
    MultiMeasureMappings?: any;
    /** Source to target mappings for measures. */
    MixedMeasureMappings?: any[];
    MeasureNameColumn?: string;
}
export interface DataModelS3Configuration {
    BucketName?: string;
    ObjectKey?: string;
}
export interface DataModelConfiguration {
    DataModel?: DataModel;
    DataModelS3Configuration?: DataModelS3Configuration;
}
export interface DataSourceS3Configuration {
    /** The bucket name of the customer S3 bucket. */
    BucketName: string;
    ObjectKeyPrefix?: string;
}
export interface CsvConfiguration {
    /** Column separator can be one of comma (','), pipe ('|), semicolon (';'), tab('/t'), or blank space (' '). */
    ColumnSeparator?: string;
    /** Escape character can be one of */
    EscapeChar?: string;
    /** Can be single quote (') or double quote ("). */
    QuoteChar?: string;
    /** Can be blank space (' '). */
    NullValue?: string;
    /** Specifies to trim leading and trailing white space. */
    TrimWhiteSpace?: boolean;
}
export interface DataSourceConfiguration {
    /** Configuration of an S3 location for a file which contains data to load. */
    DataSourceS3Configuration: DataSourceS3Configuration;
    CsvConfiguration?: CsvConfiguration;
    /** This is currently CSV. */
    DataFormat: 'CSV';
}
export interface ReportS3Configuration {
    BucketName: string;
    ObjectKeyPrefix?: string;
    EncryptionOption?: 'SSE_S3' | 'SSE_KMS';
    KmsKeyId?: string;
}
export interface ReportConfiguration {
    /** Configuration of an S3 location to write error reports and events for a batch load. */
    ReportS3Configuration?: ReportS3Configuration;
}
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 RetentionProperties {
    /** The duration for which data must be stored in the memory store. */
    MemoryStoreRetentionPeriodInHours: number;
    /** The duration for which data must be stored in the magnetic store. */
    MagneticStoreRetentionPeriodInDays: number;
}
export interface MagneticStoreRejectedDataLocation {
    /** Configuration of an S3 location to write error reports for records rejected, asynchronously, during magnetic store writes. */
    S3Configuration?: any;
}
export interface MagneticStoreWriteProperties {
    /** A flag to enable magnetic store writes. */
    EnableMagneticStoreWrites: boolean;
    /** The location to write error reports for records rejected asynchronously during magnetic store writes. */
    MagneticStoreRejectedDataLocation?: MagneticStoreRejectedDataLocation;
}
export interface Schema {
    /** A non-empty list of partition keys defining the attributes used to partition the table data. The order of the list determines the partition hierarchy. The name and type of each partition key as well a */
    CompositePartitionKey?: any[];
}
export interface CreateBatchLoadTaskInput {
    /** Defines configuration details about the data source for a batch load task. */
    DataSourceConfiguration: DataSourceConfiguration;
    ReportConfiguration: ReportConfiguration;
    /** Target Timestream database for a batch load task. */
    TargetDatabaseName: string;
    /** Target Timestream table for a batch load task. */
    TargetTableName: string;
    ClientToken?: string;
    DataModelConfiguration?: DataModelConfiguration;
    RecordVersion?: number;
}
export interface CreateDatabaseInput {
    /** The name of the Timestream database. */
    DatabaseName: string;
    /** The KMS key for the database. If the KMS key is not specified, the database will be encrypted with a Timestream managed KMS key located in your account. For more information, see Amazon Web Services m */
    KmsKeyId?: string;
    /** A list of key-value pairs to label the table. */
    Tags?: Tag[];
}
export interface CreateTableInput {
    /** The name of the Timestream database. */
    DatabaseName: string;
    /** The name of the Timestream table. */
    TableName: string;
    /** Contains properties to set on the table when enabling magnetic store writes. */
    MagneticStoreWriteProperties?: MagneticStoreWriteProperties;
    /** The duration for which your time-series data must be stored in the memory store and the magnetic store. */
    RetentionProperties?: RetentionProperties;
    /** The schema of the table. */
    Schema?: Schema;
    /** A list of key-value pairs to label the table. */
    Tags?: Tag[];
}
export interface DeleteDatabaseInput {
    /** The name of the Timestream database to be deleted. */
    DatabaseName: string;
}
export interface DeleteTableInput {
    /** The name of the database where the Timestream database is to be deleted. */
    DatabaseName: string;
    /** The name of the Timestream table to be deleted. */
    TableName: string;
}
export interface DescribeBatchLoadTaskInput {
    /** The ID of the batch load task. */
    TaskId: string;
}
export interface DescribeDatabaseInput {
    /** The name of the Timestream database. */
    DatabaseName: string;
}
export interface DescribeTableInput {
    /** The name of the Timestream database. */
    DatabaseName: string;
    /** The name of the Timestream table. */
    TableName: string;
}
export interface ListBatchLoadTasksInput {
    /** The total 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 Nex */
    MaxResults?: number;
    /** A token to specify where to start paginating. This is the NextToken from a previously truncated response. */
    NextToken?: string;
    /** Status of the batch load task. */
    TaskStatus?: 'CREATED' | 'IN_PROGRESS' | 'FAILED' | 'SUCCEEDED' | 'PROGRESS_STOPPED' | 'PENDING_RESUME';
}
export interface ListDatabasesInput {
    /** The total 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 Nex */
    MaxResults?: number;
    /** The pagination token. To resume pagination, provide the NextToken value as argument of a subsequent API invocation. */
    NextToken?: string;
}
export interface ListTablesInput {
    /** The name of the Timestream database. */
    DatabaseName?: string;
    /** The total 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 Nex */
    MaxResults?: number;
    /** The pagination token. To resume pagination, provide the NextToken value as argument of a subsequent API invocation. */
    NextToken?: string;
}
export interface ListTagsForResourceInput {
    /** The Timestream resource with tags to be listed. This value is an Amazon Resource Name (ARN). */
    ResourceARN: string;
}
export interface ResumeBatchLoadTaskInput {
    /** The ID of the batch load task to resume. */
    TaskId: string;
}
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 UpdateDatabaseInput {
    /** The name of the database. */
    DatabaseName: string;
    /** The identifier of the new KMS key (KmsKeyId) to be used to encrypt the data stored in the database. If the KmsKeyId currently registered with the database is the same as the KmsKeyId in the request, t */
    KmsKeyId: string;
}
export interface UpdateTableInput {
    /** The name of the Timestream database. */
    DatabaseName: string;
    /** The name of the Timestream table. */
    TableName: string;
    /** Contains properties to set on the table when enabling magnetic store writes. */
    MagneticStoreWriteProperties?: MagneticStoreWriteProperties;
    /** The retention duration of the memory store and the magnetic store. */
    RetentionProperties?: RetentionProperties;
    /** The schema of the table. */
    Schema?: Schema;
}
export interface WriteRecordsInput {
    /** The name of the Timestream database. */
    DatabaseName: string;
    /** An array of records that contain the unique measure, dimension, time, and version attributes for each time-series data point. */
    Records: any[];
    /** The name of the Timestream table. */
    TableName: string;
    /** A record that contains the common measure, dimension, time, and version attributes shared across all the records in the request. The measure and dimension attributes specified will be merged with the  */
    CommonAttributes?: any;
}
/** Timestream Write service binding for Step Functions SDK integrations. */
export declare class TimestreamWrite {
    constructor();
    createBatchLoadTask<T>(params: CreateBatchLoadTaskInput): Promise<T>;
    createDatabase<T>(params: CreateDatabaseInput): Promise<T>;
    createTable<T>(params: CreateTableInput): Promise<T>;
    deleteDatabase<T>(params: DeleteDatabaseInput): Promise<T>;
    deleteTable<T>(params: DeleteTableInput): Promise<T>;
    describeBatchLoadTask<T>(params: DescribeBatchLoadTaskInput): Promise<T>;
    describeDatabase<T>(params: DescribeDatabaseInput): Promise<T>;
    describeEndpoints<T>(params: Record<string, any>): Promise<T>;
    describeTable<T>(params: DescribeTableInput): Promise<T>;
    listBatchLoadTasks<T>(params: ListBatchLoadTasksInput): Promise<T>;
    listDatabases<T>(params: ListDatabasesInput): Promise<T>;
    listTables<T>(params: ListTablesInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    resumeBatchLoadTask<T>(params: ResumeBatchLoadTaskInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateDatabase<T>(params: UpdateDatabaseInput): Promise<T>;
    updateTable<T>(params: UpdateTableInput): Promise<T>;
    writeRecords<T>(params: WriteRecordsInput): Promise<T>;
}
//# sourceMappingURL=TimestreamWrite.d.ts.map