///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
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;