import { ConstructorArgs } from './types';
declare class KeyValueRepository {
    private tableName;
    private keyName;
    private idOptions?;
    private docClient;
    private updateExpressionsBuilder;
    /**
     * Create a HashKey Repository
     * @param {Object} param - The constructor parameter
     * @param {string} param.tableName - The name of your DynamoDB table
     * @param {string} param.keyName - The name of your Hash/Partition Key property
     * @param {Object} param.documentClient - Injectable DynamoDBDocumentClient (v3) from @aws-sdk/lib-dynamodb
     * @param {Object} [param.idOptions] - The idOptions parameter
     * @param {string} [param.idOptions.prefix=] - The prefix of your id
     */
    constructor(input: ConstructorArgs);
    get(hashKey: string): Promise<Record<string, any>>;
    getMany(input?: {
        limit?: number;
        cursor?: string;
    }): Promise<{
        items: Record<string, any>[];
        cursor: string | undefined;
    }>;
    remove(hashKey: string): Promise<void>;
    create(item: any): Promise<any>;
    update(item: any): Promise<Record<string, any>>;
    private buildUpdateCommandInput;
    private validateRequiredProperties;
}
export default KeyValueRepository;
