import { ResourceBase, ResourceTag as Inner_ResourceTag } from "../../resource";
import { Value, List } from "../../data-types";
export declare class SSESpecification {
    KMSMasterKeyId?: Value<string>;
    SSEEnabled: Value<boolean>;
    SSEType?: Value<string>;
    constructor(properties: SSESpecification);
}
export declare class LocalSecondaryIndex {
    IndexName: Value<string>;
    KeySchema: List<KeySchema>;
    Projection: Projection;
    constructor(properties: LocalSecondaryIndex);
}
export declare class GlobalSecondaryIndex {
    IndexName: Value<string>;
    KeySchema: List<KeySchema>;
    Projection: Projection;
    ProvisionedThroughput?: ProvisionedThroughput;
    constructor(properties: GlobalSecondaryIndex);
}
export declare class TimeToLiveSpecification {
    AttributeName: Value<string>;
    Enabled: Value<boolean>;
    constructor(properties: TimeToLiveSpecification);
}
export declare class AttributeDefinition {
    AttributeName: Value<string>;
    AttributeType: Value<string>;
    constructor(properties: AttributeDefinition);
}
export declare class PointInTimeRecoverySpecification {
    PointInTimeRecoveryEnabled?: Value<boolean>;
    constructor(properties: PointInTimeRecoverySpecification);
}
export declare class Projection {
    NonKeyAttributes?: List<Value<string>>;
    ProjectionType?: Value<string>;
    constructor(properties: Projection);
}
export declare class ProvisionedThroughput {
    ReadCapacityUnits: Value<number>;
    WriteCapacityUnits: Value<number>;
    constructor(properties: ProvisionedThroughput);
}
export declare class KeySchema {
    AttributeName: Value<string>;
    KeyType: Value<string>;
    constructor(properties: KeySchema);
}
export declare class StreamSpecification {
    StreamViewType: Value<string>;
    constructor(properties: StreamSpecification);
}
export interface TableProperties {
    KeySchema: List<KeySchema>;
    StreamSpecification?: StreamSpecification;
    AttributeDefinitions?: List<AttributeDefinition>;
    PointInTimeRecoverySpecification?: PointInTimeRecoverySpecification;
    TimeToLiveSpecification?: TimeToLiveSpecification;
    GlobalSecondaryIndexes?: List<GlobalSecondaryIndex>;
    LocalSecondaryIndexes?: List<LocalSecondaryIndex>;
    Tags?: List<Inner_ResourceTag>;
    TableName?: Value<string>;
    ProvisionedThroughput?: ProvisionedThroughput;
    BillingMode?: Value<string>;
    SSESpecification?: SSESpecification;
}
export default class Inner_Table extends ResourceBase<TableProperties> {
    static SSESpecification: typeof SSESpecification;
    static LocalSecondaryIndex: typeof LocalSecondaryIndex;
    static GlobalSecondaryIndex: typeof GlobalSecondaryIndex;
    static TimeToLiveSpecification: typeof TimeToLiveSpecification;
    static AttributeDefinition: typeof AttributeDefinition;
    static PointInTimeRecoverySpecification: typeof PointInTimeRecoverySpecification;
    static Projection: typeof Projection;
    static ProvisionedThroughput: typeof ProvisionedThroughput;
    static KeySchema: typeof KeySchema;
    static StreamSpecification: typeof StreamSpecification;
    constructor(properties: TableProperties);
}
