/// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// import type { TxData, TransactionResult } from './transaction'; /** Base transaction context passed by callers — does not include fields added internally */ export interface SpendTxData { user: string | import('mongoose').Types.ObjectId; conversationId?: string; model?: string; context?: string; endpointTokenConfig?: Record> | null; balance?: { enabled?: boolean; }; transactions?: { enabled?: boolean; }; valueKey?: string; } export declare function createSpendTokensMethods(_mongoose: typeof import('mongoose'), transactionMethods: { createTransaction: (txData: TxData) => Promise; createStructuredTransaction: (txData: TxData) => Promise; }): { spendTokens: (txData: SpendTxData, tokenUsage: { promptTokens?: number; completionTokens?: number; }) => Promise; spendStructuredTokens: (txData: SpendTxData, tokenUsage: { promptTokens?: { input?: number; write?: number; read?: number; }; completionTokens?: number; }) => Promise<{ prompt: TransactionResult | undefined; completion: TransactionResult | undefined; }>; }; export type SpendTokensMethods = ReturnType;