import type { DynamoDBDocumentClient, TransactWriteCommandInput, TransactWriteCommandOutput } from '@aws-sdk/lib-dynamodb'; import type { CapacityOption } from '../../../options/capacity.js'; import type { ClientRequestToken } from '../../../options/clientRequestToken.js'; import type { MetricsOption } from '../../../options/metrics.js'; import type { DocumentClientOptions } from '../../../types/documentClientOptions.js'; import type { WriteTransactionImplementation } from './transaction.js'; export interface ExecuteTransactWriteOptions extends DocumentClientOptions { documentClient?: DynamoDBDocumentClient; capacity?: CapacityOption; metrics?: MetricsOption; clientRequestToken?: ClientRequestToken; } export type ExecuteTransactWriteInput = WriteTransactionImplementation[] | [ExecuteTransactWriteOptions, ...WriteTransactionImplementation[]]; type ExecuteTransactWrite = (...transactions: TRANSACTIONS) => Promise>; export type ExecuteTransactWriteResponses = TRANSACTIONS extends WriteTransactionImplementation[] ? ExecuteTransactWriteResponse : TRANSACTIONS extends [ExecuteTransactWriteOptions, ...infer TRANSACTIONS_TAIL] ? TRANSACTIONS_TAIL extends WriteTransactionImplementation[] ? ExecuteTransactWriteResponse : never : never; type ExecuteTransactWriteResponse = TransactWriteCommandOutput & { ToolboxItems: ToolboxItems; }; type ToolboxItems = TRANSACTIONS extends [infer TRANSACTIONS_HEAD, ...infer TRANSACTIONS_TAIL] ? TRANSACTIONS_HEAD extends WriteTransactionImplementation ? TRANSACTIONS_TAIL extends WriteTransactionImplementation[] ? ToolboxItems]> : never : never : number extends TRANSACTIONS['length'] ? [ ...TOOLBOX_ITEMS, ...(TRANSACTIONS[number] extends infer TRANSACTION ? TRANSACTION extends WriteTransactionImplementation ? ToolboxItem : never : never)[] ] : TOOLBOX_ITEMS extends [] ? unknown[] : TOOLBOX_ITEMS; type ToolboxItem> = PARAMS extends { ToolboxItem: unknown; } ? PARAMS['ToolboxItem'] : undefined; export declare const execute: ExecuteTransactWrite; export declare const getCommandInput: (transactions: WriteTransactionImplementation[], options?: ExecuteTransactWriteOptions) => TransactWriteCommandInput & { TransactItems: { ToolboxItem?: unknown; }[]; }; export {};