import { DynamoDBClient } from '@aws-sdk/client-dynamodb'; import { ConfigService } from '@nestjs/config'; import { TableType } from '../commands'; import { DdbUpdateItem, DetailKey } from '../interfaces'; import { S3Service } from './s3.service'; declare const CLIENT_INSTANCE: unique symbol; export declare class DynamoDbService { private readonly config; private readonly s3Service; private readonly logger; private readonly [CLIENT_INSTANCE]; private readonly tablePrefix; constructor(config: ConfigService, s3Service: S3Service); get client(): DynamoDBClient; putItem(tableName: string, item: Record, conditions?: string): Promise>; updateItem(tableName: string, key: DetailKey, item: DdbUpdateItem, conditions?: string): Promise; getItem(tableName: string, key: DetailKey, options?: { consistentRead?: boolean; }): Promise; deleteItem(tableName: string, key: DetailKey, conditions?: string): Promise; listItemsByPk(tableName: string, pk: string, sk?: { skExpression: string; skAttributeValues: Record; skAttributeNames?: Record; }, startFromSk?: string, limit?: number, order?: 'asc' | 'desc'): Promise; listAllItems(tableName: string, startKey?: DetailKey, limit?: number): Promise<{ lastKey: DetailKey; items: any[]; }>; private ddbItemToObj; private objToDdbItem; private toDdbKey; private buildUpdateExpression; private buildUpdateSetExpression; private buildUpdateRemoveExpression; private buildUpdateDeleteExpression; getTableName(moduleName: string, type?: TableType): string; getModuleName(tableName: string): string; } export {};