export interface IcebergMetadata {
    /** The schema for an Iceberg table. */
    schema: any;
    /** The partition specification for the Iceberg table. Partitioning organizes data into separate files based on the values of one or more fields, which can improve query performance by reducing the amount */
    partitionSpec?: any;
    /** The sort order for the Iceberg table. Sort order defines how data is sorted within data files, which can improve query performance by enabling more efficient data skipping and filtering. */
    writeOrder?: any;
    /** A map of custom configuration properties for the Iceberg table. */
    properties?: Record<string, any>;
}
export interface EncryptionConfiguration {
    /** The server-side encryption algorithm to use. Valid values are AES256 for S3-managed encryption keys, or aws:kms for Amazon Web Services KMS-managed encryption keys. If you choose SSE-KMS encryption yo */
    sseAlgorithm: 'AES256' | 'aws:kms';
    /** The Amazon Resource Name (ARN) of the KMS key to use for encryption. This field is required only when sseAlgorithm is set to aws:kms. */
    kmsKeyArn?: string;
}
export interface StorageClassConfiguration {
    /** The storage class for the table or table bucket. Valid values include storage classes optimized for different access patterns and cost profiles. */
    storageClass: 'STANDARD' | 'INTELLIGENT_TIERING';
}
export interface TableBucketMaintenanceConfigurationValue {
    /** The status of the maintenance configuration. */
    status?: 'enabled' | 'disabled';
    /** Contains details about the settings of the maintenance configuration. */
    settings?: {
        icebergUnreferencedFileRemoval?: any;
    };
}
export interface TableBucketReplicationConfiguration {
    /** The Amazon Resource Name (ARN) of the IAM role that S3 Tables assumes to replicate tables on your behalf. */
    role: string;
    /** An array of replication rules that define which tables to replicate and where to replicate them. */
    rules: any[];
}
export interface TableMaintenanceConfigurationValue {
    /** The status of the maintenance configuration. */
    status?: 'enabled' | 'disabled';
    /** Contains details about the settings for the maintenance configuration. */
    settings?: {
        icebergCompaction?: any;
    } | {
        icebergSnapshotManagement?: any;
    };
}
export interface TableRecordExpirationSettings {
    /** If you enable record expiration for a table, you can specify the number of days to retain your table records. For example, to retain your table records for one year, set this value to 365. */
    days?: number;
}
export interface TableRecordExpirationConfigurationValue {
    /** The status of the expiration settings for records in the table. */
    status?: 'enabled' | 'disabled';
    /** The expiration settings for records in the table. */
    settings?: TableRecordExpirationSettings;
}
export interface TableReplicationConfiguration {
    /** The Amazon Resource Name (ARN) of the IAM role that S3 Tables assumes to replicate the table on your behalf. */
    role: string;
    /** An array of replication rules that define where this table should be replicated. */
    rules: any[];
}
export interface CreateNamespaceInput {
    /** A name for the namespace. */
    namespace: string[];
    /** The Amazon Resource Name (ARN) of the table bucket to create the namespace in. */
    tableBucketARN: string;
}
export interface CreateTableInput {
    /** The format for the table. */
    format: 'ICEBERG';
    /** The name for the table. */
    name: string;
    /** The namespace to associated with the table. */
    namespace: string;
    /** The Amazon Resource Name (ARN) of the table bucket to create the table in. */
    tableBucketARN: string;
    /** The encryption configuration to use for the table. This configuration specifies the encryption algorithm and, if using SSE-KMS, the KMS key to use for encrypting the table. If you choose SSE-KMS encry */
    encryptionConfiguration?: EncryptionConfiguration;
    /** The metadata for the table. */
    metadata?: {
        iceberg?: IcebergMetadata;
    };
    /** The storage class configuration for the table. If not specified, the table inherits the storage class configuration from its table bucket. Specify this parameter to override the bucket's default stora */
    storageClassConfiguration?: StorageClassConfiguration;
    /** A map of user-defined tags that you would like to apply to the table that you are creating. A tag is a key-value pair that you apply to your resources. Tags can help you organize, track costs for, and */
    tags?: Record<string, string>;
}
export interface CreateTableBucketInput {
    /** The name for the table bucket. */
    name: string;
    /** The encryption configuration to use for the table bucket. This configuration specifies the default encryption settings that will be applied to all tables created in this bucket unless overridden at th */
    encryptionConfiguration?: EncryptionConfiguration;
    /** The default storage class configuration for the table bucket. This configuration will be applied to all new tables created in this bucket unless overridden at the table level. If not specified, the se */
    storageClassConfiguration?: StorageClassConfiguration;
    /** A map of user-defined tags that you would like to apply to the table bucket that you are creating. A tag is a key-value pair that you apply to your resources. Tags can help you organize and control ac */
    tags?: Record<string, string>;
}
export interface DeleteNamespaceInput {
    /** The name of the namespace. */
    namespace: string;
    /** The Amazon Resource Name (ARN) of the table bucket associated with the namespace. */
    tableBucketARN: string;
}
export interface DeleteTableInput {
    /** The name of the table. */
    name: string;
    /** The namespace associated with the table. */
    namespace: string;
    /** The Amazon Resource Name (ARN) of the table bucket that contains the table. */
    tableBucketARN: string;
    /** The version token of the table. */
    versionToken?: string;
}
export interface DeleteTableBucketInput {
    /** The Amazon Resource Name (ARN) of the table bucket. */
    tableBucketARN: string;
}
export interface DeleteTableBucketEncryptionInput {
    /** The Amazon Resource Name (ARN) of the table bucket. */
    tableBucketARN: string;
}
export interface DeleteTableBucketMetricsConfigurationInput {
    /** The Amazon Resource Name (ARN) of the table bucket. */
    tableBucketARN: string;
}
export interface DeleteTableBucketPolicyInput {
    /** The Amazon Resource Name (ARN) of the table bucket. */
    tableBucketARN: string;
}
export interface DeleteTableBucketReplicationInput {
    /** The Amazon Resource Name (ARN) of the table bucket. */
    tableBucketARN: string;
    /** A version token from a previous GetTableBucketReplication call. Use this token to ensure you're deleting the expected version of the configuration. */
    versionToken?: string;
}
export interface DeleteTablePolicyInput {
    /** The table name. */
    name: string;
    /** The namespace associated with the table. */
    namespace: string;
    /** The Amazon Resource Name (ARN) of the table bucket that contains the table. */
    tableBucketARN: string;
}
export interface DeleteTableReplicationInput {
    /** The Amazon Resource Name (ARN) of the table. */
    tableArn: string;
    /** A version token from a previous GetTableReplication call. Use this token to ensure you're deleting the expected version of the configuration. */
    versionToken: string;
}
export interface GetNamespaceInput {
    /** The name of the namespace. */
    namespace: string;
    /** The Amazon Resource Name (ARN) of the table bucket. */
    tableBucketARN: string;
}
export interface GetTableInput {
    /** The name of the table. */
    name?: string;
    /** The name of the namespace the table is associated with. */
    namespace?: string;
    /** The Amazon Resource Name (ARN) of the table. */
    tableArn?: string;
    /** The Amazon Resource Name (ARN) of the table bucket associated with the table. */
    tableBucketARN?: string;
}
export interface GetTableBucketInput {
    /** The Amazon Resource Name (ARN) of the table bucket. */
    tableBucketARN: string;
}
export interface GetTableBucketEncryptionInput {
    /** The Amazon Resource Name (ARN) of the table bucket. */
    tableBucketARN: string;
}
export interface GetTableBucketMaintenanceConfigurationInput {
    /** The Amazon Resource Name (ARN) of the table bucket associated with the maintenance configuration. */
    tableBucketARN: string;
}
export interface GetTableBucketMetricsConfigurationInput {
    /** The Amazon Resource Name (ARN) of the table bucket. */
    tableBucketARN: string;
}
export interface GetTableBucketPolicyInput {
    /** The Amazon Resource Name (ARN) of the table bucket. */
    tableBucketARN: string;
}
export interface GetTableBucketReplicationInput {
    /** The Amazon Resource Name (ARN) of the table bucket. */
    tableBucketARN: string;
}
export interface GetTableBucketStorageClassInput {
    /** The Amazon Resource Name (ARN) of the table bucket. */
    tableBucketARN: string;
}
export interface GetTableEncryptionInput {
    /** The name of the table. */
    name: string;
    /** The namespace associated with the table. */
    namespace: string;
    /** The Amazon Resource Name (ARN) of the table bucket containing the table. */
    tableBucketARN: string;
}
export interface GetTableMaintenanceConfigurationInput {
    /** The name of the table. */
    name: string;
    /** The namespace associated with the table. */
    namespace: string;
    /** The Amazon Resource Name (ARN) of the table bucket. */
    tableBucketARN: string;
}
export interface GetTableMaintenanceJobStatusInput {
    /** The name of the table containing the maintenance job status you want to check. */
    name: string;
    /** The name of the namespace the table is associated with. */
    namespace: string;
    /** The Amazon Resource Name (ARN) of the table bucket. */
    tableBucketARN: string;
}
export interface GetTableMetadataLocationInput {
    /** The name of the table. */
    name: string;
    /** The namespace of the table. */
    namespace: string;
    /** The Amazon Resource Name (ARN) of the table bucket. */
    tableBucketARN: string;
}
export interface GetTablePolicyInput {
    /** The name of the table. */
    name: string;
    /** The namespace associated with the table. */
    namespace: string;
    /** The Amazon Resource Name (ARN) of the table bucket that contains the table. */
    tableBucketARN: string;
}
export interface GetTableRecordExpirationConfigurationInput {
    /** The Amazon Resource Name (ARN) of the table. */
    tableArn: string;
}
export interface GetTableRecordExpirationJobStatusInput {
    /** The Amazon Resource Name (ARN) of the table. */
    tableArn: string;
}
export interface GetTableReplicationInput {
    /** The Amazon Resource Name (ARN) of the table. */
    tableArn: string;
}
export interface GetTableReplicationStatusInput {
    /** The Amazon Resource Name (ARN) of the table. */
    tableArn: string;
}
export interface GetTableStorageClassInput {
    /** The name of the table. */
    name: string;
    /** The namespace associated with the table. */
    namespace: string;
    /** The Amazon Resource Name (ARN) of the table bucket that contains the table. */
    tableBucketARN: string;
}
export interface ListNamespacesInput {
    /** The Amazon Resource Name (ARN) of the table bucket. */
    tableBucketARN: string;
    /** ContinuationToken indicates to Amazon S3 that the list is being continued on this bucket with a token. ContinuationToken is obfuscated and is not a real key. You can use this ContinuationToken for pag */
    continuationToken?: string;
    /** The maximum number of namespaces to return in the list. */
    maxNamespaces?: number;
    /** The prefix of the namespaces. */
    prefix?: string;
}
export interface ListTableBucketsInput {
    /** ContinuationToken indicates to Amazon S3 that the list is being continued on this bucket with a token. ContinuationToken is obfuscated and is not a real key. You can use this ContinuationToken for pag */
    continuationToken?: string;
    /** The maximum number of table buckets to return in the list. */
    maxBuckets?: number;
    /** The prefix of the table buckets. */
    prefix?: string;
    /** The type of table buckets to filter by in the list. */
    type?: 'customer' | 'aws';
}
export interface ListTablesInput {
    /** The Amazon resource Name (ARN) of the table bucket. */
    tableBucketARN: string;
    /** ContinuationToken indicates to Amazon S3 that the list is being continued on this bucket with a token. ContinuationToken is obfuscated and is not a real key. You can use this ContinuationToken for pag */
    continuationToken?: string;
    /** The maximum number of tables to return. */
    maxTables?: number;
    /** The namespace of the tables. */
    namespace?: string;
    /** The prefix of the tables. */
    prefix?: string;
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) of the Amazon S3 Tables resource that you want to list tags for. The tagged resource can be a table bucket or a table. For a list of all S3 resources that support taggin */
    resourceArn: string;
}
export interface PutTableBucketEncryptionInput {
    /** The encryption configuration to apply to the table bucket. */
    encryptionConfiguration: EncryptionConfiguration;
    /** The Amazon Resource Name (ARN) of the table bucket. */
    tableBucketARN: string;
}
export interface PutTableBucketMaintenanceConfigurationInput {
    /** The Amazon Resource Name (ARN) of the table bucket associated with the maintenance configuration. */
    tableBucketARN: string;
    /** The type of the maintenance configuration. */
    type: 'icebergUnreferencedFileRemoval';
    /** Defines the values of the maintenance configuration for the table bucket. */
    value: TableBucketMaintenanceConfigurationValue;
}
export interface PutTableBucketMetricsConfigurationInput {
    /** The Amazon Resource Name (ARN) of the table bucket. */
    tableBucketARN: string;
}
export interface PutTableBucketPolicyInput {
    /** The JSON that defines the policy. */
    resourcePolicy: string;
    /** The Amazon Resource Name (ARN) of the table bucket. */
    tableBucketARN: string;
}
export interface PutTableBucketReplicationInput {
    /** The replication configuration to apply, including the IAM role and replication rules. */
    configuration: TableBucketReplicationConfiguration;
    /** The Amazon Resource Name (ARN) of the source table bucket. */
    tableBucketARN: string;
    /** A version token from a previous GetTableBucketReplication call. Use this token to ensure you're updating the expected version of the configuration. */
    versionToken?: string;
}
export interface PutTableBucketStorageClassInput {
    /** The storage class configuration to apply to the table bucket. This configuration will serve as the default for new tables created in this bucket. */
    storageClassConfiguration: StorageClassConfiguration;
    /** The Amazon Resource Name (ARN) of the table bucket. */
    tableBucketARN: string;
}
export interface PutTableMaintenanceConfigurationInput {
    /** The name of the table. */
    name: string;
    /** The namespace of the table. */
    namespace: string;
    /** The Amazon Resource Name (ARN) of the table associated with the maintenance configuration. */
    tableBucketARN: string;
    /** The type of the maintenance configuration. */
    type: 'icebergCompaction' | 'icebergSnapshotManagement';
    /** Defines the values of the maintenance configuration for the table. */
    value: TableMaintenanceConfigurationValue;
}
export interface PutTablePolicyInput {
    /** The name of the table. */
    name: string;
    /** The namespace associated with the table. */
    namespace: string;
    /** The JSON that defines the policy. */
    resourcePolicy: string;
    /** The Amazon Resource Name (ARN) of the table bucket that contains the table. */
    tableBucketARN: string;
}
export interface PutTableRecordExpirationConfigurationInput {
    /** The Amazon Resource Name (ARN) of the table. */
    tableArn: string;
    /** The record expiration configuration to apply to the table, including the status (enabled or disabled) and retention period in days. */
    value: TableRecordExpirationConfigurationValue;
}
export interface PutTableReplicationInput {
    /** The replication configuration to apply to the table, including the IAM role and replication rules. */
    configuration: TableReplicationConfiguration;
    /** The Amazon Resource Name (ARN) of the source table. */
    tableArn: string;
    /** A version token from a previous GetTableReplication call. Use this token to ensure you're updating the expected version of the configuration. */
    versionToken?: string;
}
export interface RenameTableInput {
    /** The current name of the table. */
    name: string;
    /** The namespace associated with the table. */
    namespace: string;
    /** The Amazon Resource Name (ARN) of the table bucket. */
    tableBucketARN: string;
    /** The new name for the table. */
    newName?: string;
    /** The new name for the namespace. */
    newNamespaceName?: string;
    /** The version token of the table. */
    versionToken?: string;
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) of the Amazon S3 Tables resource that you're applying tags to. The tagged resource can be a table bucket or a table. For a list of all S3 resources that support tagging, */
    resourceArn: string;
    /** The user-defined tag that you want to add to the specified S3 Tables resource. For more information, see Tagging for cost allocation or attribute-based access control (ABAC). */
    tags: Record<string, string>;
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) of the Amazon S3 Tables resource that you're removing tags from. The tagged resource can be a table bucket or a table. For a list of all S3 resources that support taggin */
    resourceArn: string;
    /** The array of tag keys that you're removing from the S3 Tables resource. For more information, see Tagging for cost allocation or attribute-based access control (ABAC). */
    tagKeys: string[];
}
export interface UpdateTableMetadataLocationInput {
    /** The new metadata location for the table. */
    metadataLocation: string;
    /** The name of the table. */
    name: string;
    /** The namespace of the table. */
    namespace: string;
    /** The Amazon Resource Name (ARN) of the table bucket. */
    tableBucketARN: string;
    /** The version token of the table. */
    versionToken: string;
}
/** S3Tables service binding for Step Functions SDK integrations. */
export declare class S3Tables {
    constructor();
    createNamespace<T>(params: CreateNamespaceInput): Promise<T>;
    createTable<T>(params: CreateTableInput): Promise<T>;
    createTableBucket<T>(params: CreateTableBucketInput): Promise<T>;
    deleteNamespace<T>(params: DeleteNamespaceInput): Promise<T>;
    deleteTable<T>(params: DeleteTableInput): Promise<T>;
    deleteTableBucket<T>(params: DeleteTableBucketInput): Promise<T>;
    deleteTableBucketEncryption<T>(params: DeleteTableBucketEncryptionInput): Promise<T>;
    deleteTableBucketMetricsConfiguration<T>(params: DeleteTableBucketMetricsConfigurationInput): Promise<T>;
    deleteTableBucketPolicy<T>(params: DeleteTableBucketPolicyInput): Promise<T>;
    deleteTableBucketReplication<T>(params: DeleteTableBucketReplicationInput): Promise<T>;
    deleteTablePolicy<T>(params: DeleteTablePolicyInput): Promise<T>;
    deleteTableReplication<T>(params: DeleteTableReplicationInput): Promise<T>;
    getNamespace<T>(params: GetNamespaceInput): Promise<T>;
    getTable<T>(params: GetTableInput): Promise<T>;
    getTableBucket<T>(params: GetTableBucketInput): Promise<T>;
    getTableBucketEncryption<T>(params: GetTableBucketEncryptionInput): Promise<T>;
    getTableBucketMaintenanceConfiguration<T>(params: GetTableBucketMaintenanceConfigurationInput): Promise<T>;
    getTableBucketMetricsConfiguration<T>(params: GetTableBucketMetricsConfigurationInput): Promise<T>;
    getTableBucketPolicy<T>(params: GetTableBucketPolicyInput): Promise<T>;
    getTableBucketReplication<T>(params: GetTableBucketReplicationInput): Promise<T>;
    getTableBucketStorageClass<T>(params: GetTableBucketStorageClassInput): Promise<T>;
    getTableEncryption<T>(params: GetTableEncryptionInput): Promise<T>;
    getTableMaintenanceConfiguration<T>(params: GetTableMaintenanceConfigurationInput): Promise<T>;
    getTableMaintenanceJobStatus<T>(params: GetTableMaintenanceJobStatusInput): Promise<T>;
    getTableMetadataLocation<T>(params: GetTableMetadataLocationInput): Promise<T>;
    getTablePolicy<T>(params: GetTablePolicyInput): Promise<T>;
    getTableRecordExpirationConfiguration<T>(params: GetTableRecordExpirationConfigurationInput): Promise<T>;
    getTableRecordExpirationJobStatus<T>(params: GetTableRecordExpirationJobStatusInput): Promise<T>;
    getTableReplication<T>(params: GetTableReplicationInput): Promise<T>;
    getTableReplicationStatus<T>(params: GetTableReplicationStatusInput): Promise<T>;
    getTableStorageClass<T>(params: GetTableStorageClassInput): Promise<T>;
    listNamespaces<T>(params: ListNamespacesInput): Promise<T>;
    listTableBuckets<T>(params: ListTableBucketsInput): Promise<T>;
    listTables<T>(params: ListTablesInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    putTableBucketEncryption<T>(params: PutTableBucketEncryptionInput): Promise<T>;
    putTableBucketMaintenanceConfiguration<T>(params: PutTableBucketMaintenanceConfigurationInput): Promise<T>;
    putTableBucketMetricsConfiguration<T>(params: PutTableBucketMetricsConfigurationInput): Promise<T>;
    putTableBucketPolicy<T>(params: PutTableBucketPolicyInput): Promise<T>;
    putTableBucketReplication<T>(params: PutTableBucketReplicationInput): Promise<T>;
    putTableBucketStorageClass<T>(params: PutTableBucketStorageClassInput): Promise<T>;
    putTableMaintenanceConfiguration<T>(params: PutTableMaintenanceConfigurationInput): Promise<T>;
    putTablePolicy<T>(params: PutTablePolicyInput): Promise<T>;
    putTableRecordExpirationConfiguration<T>(params: PutTableRecordExpirationConfigurationInput): Promise<T>;
    putTableReplication<T>(params: PutTableReplicationInput): Promise<T>;
    renameTable<T>(params: RenameTableInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateTableMetadataLocation<T>(params: UpdateTableMetadataLocationInput): Promise<T>;
}
//# sourceMappingURL=S3Tables.d.ts.map