import { BaseConfig, BaseResult, BaseCommand, BatchGetPreparable } from './index.js'; import { DynamoEntity } from '../core/entity.js'; import { ObjectLikeZodType, EntitySchema } from '../core/index.js'; /** * Configuration for the BatchGet command. * * @template Schema - The Zod schema defining the structure of the entity. */ type BatchGetConfig = BaseConfig & { keys: Array>>; consistent?: boolean; }; /** * Result of the BatchGet command. * * @template Schema - The Zod schema defining the structure of the entity. */ type BatchGetResult = BaseResult & { items: Array>; unprocessedKeys?: Array>>; }; /** * Command to perform a batch get operation on a DynamoDB table. * * @template Schema - The Zod schema defining the structure of the entity. * * @example * ```typescript * import { DynamoTable, DynamoEntity, key, BatchGet } from 'dynamo-document-builder'; * * const table = new DynamoTable({ * tableName: 'ExampleTable', * documentClient, * }); * * const userEntity = new DynamoEntity({ * table, * schema: z.object({ * userId: z.string(), * name: z.string(), * age: z.number(), * }), * partitionKey: user => key('USER', user.userId), * sortKey: () => 'USER', * }); * * const batchGetCommand = new BatchGet({ * keys: [ * { userId: 'user1' }, * { userId: 'user2' }, * ], * consistent: true, * }); * * const { items } = await batchGetCommand.execute(userEntity); * ``` */ declare class BatchGet implements BaseCommand, Schema>, BatchGetPreparable { #private; constructor(config: BatchGetConfig); get keys(): Array>>; get consistent(): boolean; execute(entity: DynamoEntity): Promise>; } export { BatchGet }; export type { BatchGetConfig, BatchGetResult };