import { BatchGetItemInput, DeleteItemInput, GetItemInput, PutItemInput, QueryInput, ScanInput, UpdateItemInput, UpdateItemOutput } from '@aws-sdk/client-dynamodb';
import { IDynamoDBTransactionWrite } from '../';
import { BatchGetItemsResult } from '../aws-services-adapters/batch-get-item-result.class';
import { DynamoDBItem } from './dynamodb-item.type';
export interface IDynamoDBAdapter {
    query(input: QueryInput): Promise<DynamoDBItem[]>;
    putItem(input: PutItemInput): Promise<void>;
    getItem(input: GetItemInput): Promise<DynamoDBItem | null>;
    batchGetItem(input: BatchGetItemInput): Promise<BatchGetItemsResult | undefined>;
    updateItem(input: UpdateItemInput): Promise<UpdateItemOutput | undefined>;
    deleteItem(input: DeleteItemInput): Promise<void>;
    scan(input: ScanInput): Promise<DynamoDBItem[]>;
    beginWriteTransaction(): IDynamoDBTransactionWrite;
    commitWriteTransaction(transaction: IDynamoDBTransactionWrite): Promise<void>;
    documentUpdateItem(input: UpdateItemInput): Promise<UpdateItemOutput>;
}
