import * as core from "@terrascript/core";
export interface EncryptionSpecificationArgs extends core.SchemaArgs {
    kmsKeyIdentifier?: string | core.StringOut;
    type?: string | core.StringOut;
}
export declare class EncryptionSpecification extends core.Schema<EncryptionSpecificationArgs> {
    kmsKeyIdentifier?: string | core.StringOut;
    type?: string | core.StringOut;
}
export interface ClusteringKeyArgs extends core.SchemaArgs {
    name: string | core.StringOut;
    orderBy: string | core.StringOut;
}
export declare class ClusteringKey extends core.Schema<ClusteringKeyArgs> {
    name: string | core.StringOut;
    orderBy: string | core.StringOut;
}
export interface ColumnArgs extends core.SchemaArgs {
    name: string | core.StringOut;
    type: string | core.StringOut;
}
export declare class Column extends core.Schema<ColumnArgs> {
    name: string | core.StringOut;
    type: string | core.StringOut;
}
export interface PartitionKeyArgs extends core.SchemaArgs {
    name: string | core.StringOut;
}
export declare class PartitionKey extends core.Schema<PartitionKeyArgs> {
    name: string | core.StringOut;
}
export interface StaticColumnArgs extends core.SchemaArgs {
    name: string | core.StringOut;
}
export declare class StaticColumn extends core.Schema<StaticColumnArgs> {
    name: string | core.StringOut;
}
export interface SchemaDefinitionArgs extends core.SchemaArgs {
    clusteringKey?: core.Array<ClusteringKey> | core.ArrayOut<ClusteringKey>;
    column: core.Array<Column> | core.ArrayOut<Column>;
    partitionKey: core.Array<PartitionKey> | core.ArrayOut<PartitionKey>;
    staticColumn?: core.Array<StaticColumn> | core.ArrayOut<StaticColumn>;
}
export declare class SchemaDefinition extends core.Schema<SchemaDefinitionArgs> {
    clusteringKey?: core.Array<ClusteringKey> | core.ArrayOut<ClusteringKey>;
    column: core.Array<Column> | core.ArrayOut<Column>;
    partitionKey: core.Array<PartitionKey> | core.ArrayOut<PartitionKey>;
    staticColumn?: core.Array<StaticColumn> | core.ArrayOut<StaticColumn>;
}
export interface CommentArgs extends core.SchemaArgs {
    message?: string | core.StringOut;
}
export declare class Comment extends core.Schema<CommentArgs> {
    message?: string | core.StringOut;
}
export interface PointInTimeRecoveryArgs extends core.SchemaArgs {
    status?: string | core.StringOut;
}
export declare class PointInTimeRecovery extends core.Schema<PointInTimeRecoveryArgs> {
    status?: string | core.StringOut;
}
export interface CapacitySpecificationArgs extends core.SchemaArgs {
    readCapacityUnits?: number | core.NumberOut;
    throughputMode?: string | core.StringOut;
    writeCapacityUnits?: number | core.NumberOut;
}
export declare class CapacitySpecification extends core.Schema<CapacitySpecificationArgs> {
    readCapacityUnits?: number | core.NumberOut;
    throughputMode?: string | core.StringOut;
    writeCapacityUnits?: number | core.NumberOut;
}
export interface TtlArgs extends core.SchemaArgs {
    status: string | core.StringOut;
}
export declare class Ttl extends core.Schema<TtlArgs> {
    status: string | core.StringOut;
}
export interface TableArgs extends core.ResourceArgs {
    capacitySpecification?: CapacitySpecification;
    comment?: Comment;
    defaultTimeToLive?: number | core.NumberOut;
    encryptionSpecification?: EncryptionSpecification;
    keyspaceName: string | core.StringOut;
    pointInTimeRecovery?: PointInTimeRecovery;
    schemaDefinition: SchemaDefinition;
    tableName: string | core.StringOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    ttl?: Ttl;
}
export declare class Table extends core.Resource<TableArgs> {
    arn: string | core.StringOut;
    capacitySpecification?: CapacitySpecification;
    comment?: Comment;
    defaultTimeToLive?: number | core.NumberOut;
    encryptionSpecification?: EncryptionSpecification;
    id: string | core.StringOut;
    keyspaceName: string | core.StringOut;
    pointInTimeRecovery?: PointInTimeRecovery;
    schemaDefinition: SchemaDefinition;
    tableName: string | core.StringOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    ttl?: Ttl;
    constructor(name: string, args?: TableArgs);
    getNamespace(): string;
}
//# sourceMappingURL=table.d.ts.map