import { PersonaProtocolBase } from './base'; import { Session, ProtocolStatus, PersonaProtocolBaseConfig, PersonaTransaction, FunctionCall, PersonaPacket } from '../types'; import { ToolInstance } from '../tools'; type FinishTransactionRequest = { success: boolean; output: unknown; error: string | null; }; declare class PersonaTransactionsManager { private config; constructor(config: PersonaTransactionProtocolConfig); complete(transaction: PersonaTransaction, request: FinishTransactionRequest): Promise; fail(transaction: PersonaTransaction, request: FinishTransactionRequest): Promise; persist(transaction: PersonaTransaction, request: FinishTransactionRequest): Promise; } export type PersonaToolCallback = (...args: any[]) => any; export type PersonaTools = { [key: string]: PersonaToolCallback; }; declare class PersonaPersistableTransaction { private transaction; private manager; constructor(transaction: PersonaTransaction, manager: PersonaTransactionsManager); getFunctionCall(): FunctionCall | null; invoke(tools: PersonaTools, toolInstance?: ToolInstance): Promise; complete(output: unknown): Promise; fail(error: string): Promise; } type PersonaTransactionCallback = (transaction: PersonaPersistableTransaction) => void; type PersonaTransactionProtocolConfig = PersonaProtocolBaseConfig & { apiUrl: string; tools: PersonaTools | ToolInstance[]; onTransaction?: PersonaTransactionCallback; }; declare class PersonaTransactionProtocol extends PersonaProtocolBase { status: ProtocolStatus; autostart: boolean; session: Session; config: PersonaTransactionProtocolConfig; notify: boolean; private _tools; private _toolSchema; constructor(config: PersonaTransactionProtocolConfig); getName(): string; getPriority(): number; getToolInstance(name: string): ToolInstance | undefined; connect(session: Session): Promise; disconnect(): Promise; syncSession(session: Session): Promise; sendPacket(_packet: PersonaPacket): Promise; onTransaction(transaction: PersonaTransaction): void; getTools(): PersonaTools; } export { PersonaTransactionProtocol }; export type { PersonaTransactionProtocolConfig, FinishTransactionRequest, PersonaPersistableTransaction, PersonaTransactionCallback }; //# sourceMappingURL=transaction.d.ts.map