import { DynamoDBClientConfig } from '@aws-sdk/client-dynamodb/dist-types/DynamoDBClient';
import { DDBReadOnlyClient } from './DDBReadOnlyClient';
export interface DDBClientConfiguration<Item extends {}, PKName extends keyof Item, SKName extends keyof Item | never = never> {
    tableName: string;
    partitionKeyName: PKName;
    sortKeyName?: SKName;
    configuration?: DynamoDBClientConfig;
}
export declare class DDBClient<Item extends {}, PKName extends keyof Item, SKName extends keyof Item | never = never> extends DDBReadOnlyClient<Item, PKName, SKName> {
    constructor(configuration: DDBClientConfiguration<Item, PKName, SKName>);
    createItem(item: Item): Promise<Item>;
    createItems(items: Item[]): Promise<void>;
    updateItem(item: Item, createIfNotExists?: boolean): Promise<Item>;
    deleteItem(partitionKey: Item[PKName], sortKey?: Item[SKName]): Promise<void>;
    deleteItems(items: {
        partitionKey: Item[PKName];
        sortKey?: Item[SKName];
    }[]): Promise<void>;
}
