import { DynamoDB } from 'aws-sdk/clients/all';
import { ClientConfiguration } from 'aws-sdk/clients/dynamodb';
import { AWSError } from 'aws-sdk/lib/error';
import { PromiseResult } from 'aws-sdk/lib/request';
declare type OmitTableName<T> = Omit<T, 'TableName'>;
export declare class DynamoDBTableClient {
    private readonly tableName;
    private readonly dynamoDbClient;
    constructor(tableName: string, dynamoDbClient: DynamoDBClient);
    createTable(params: OmitTableName<DynamoDB.Types.CreateTableInput>): Promise<PromiseResult<DynamoDB.CreateTableOutput, AWSError>>;
    putDocumentToDynamo(params: OmitTableName<DynamoDB.DocumentClient.PutItemInput>): Promise<PromiseResult<DynamoDB.DocumentClient.PutItemOutput, AWSError>>;
    queryTable(params: OmitTableName<DynamoDB.DocumentClient.QueryInput>): Promise<PromiseResult<DynamoDB.DocumentClient.QueryOutput, AWSError>>;
    scanTable(params: OmitTableName<DynamoDB.DocumentClient.ScanInput>): Promise<PromiseResult<DynamoDB.DocumentClient.ScanOutput, AWSError>>;
    deleteItem(params: OmitTableName<DynamoDB.DocumentClient.DeleteItemInput>): Promise<PromiseResult<DynamoDB.DocumentClient.DeleteItemOutput, AWSError>>;
    updateItem(params: OmitTableName<DynamoDB.DocumentClient.UpdateItemInput>): Promise<PromiseResult<DynamoDB.DocumentClient.UpdateItemOutput, AWSError>>;
}
export declare class DynamoDBClient {
    private readonly dynamodb;
    private readonly dynamodbDocumentClient;
    constructor(config: ClientConfiguration);
    createTable: (createTableParams: DynamoDB.CreateTableInput) => Promise<PromiseResult<DynamoDB.CreateTableOutput, AWSError>>;
    transactWriteItems: (transactWriteParams: DynamoDB.DocumentClient.TransactWriteItemsInput) => Promise<PromiseResult<DynamoDB.DocumentClient.TransactWriteItemsOutput, AWSError>>;
    putDocumentToDynamo: (putItemParams: DynamoDB.DocumentClient.PutItemInput) => Promise<PromiseResult<DynamoDB.DocumentClient.PutItemOutput, AWSError>>;
    queryTable: (queryTableParams: DynamoDB.DocumentClient.QueryInput) => Promise<PromiseResult<DynamoDB.DocumentClient.QueryOutput, AWSError>>;
    scanTable: (scanTableParams: DynamoDB.DocumentClient.ScanInput) => Promise<PromiseResult<DynamoDB.DocumentClient.ScanOutput, AWSError>>;
    deleteItem: (deleteItemParams: DynamoDB.DocumentClient.DeleteItemInput) => Promise<PromiseResult<DynamoDB.DocumentClient.DeleteItemOutput, AWSError>>;
    updateItem: (updateItemParams: DynamoDB.DocumentClient.UpdateItemInput) => Promise<PromiseResult<DynamoDB.DocumentClient.UpdateItemOutput, AWSError>>;
}
export declare const DEFAULT_DYNAMO_DB_CLIENT: DynamoDBClient;
export {};
