// Client-side type definitions for SDK Signer API export enum MessageType { // Establish connection and keep alive LISTENING = 'LISTENING', REQUEST_LINK = 'REQUEST_LINK', LINK_ACCEPTED = 'LINK_ACCEPTED', ERROR = 'ERROR', VALIDATE_TOKEN = 'VALIDATE_TOKEN', RENEW_TOKEN = 'RENEW_TOKEN', // Get various information GET_PAIRING_ID = 'GET_PAIRING_ID', GET_PROCESSES = 'GET_PROCESSES', GET_MY_PROCESSES = 'GET_MY_PROCESSES', PROCESSES_RETRIEVED = 'PROCESSES_RETRIEVED', RETRIEVE_DATA = 'RETRIEVE_DATA', DATA_RETRIEVED = 'DATA_RETRIEVED', DECODE_PUBLIC_DATA = 'DECODE_PUBLIC_DATA', PUBLIC_DATA_DECODED = 'PUBLIC_DATA_DECODED', GET_MEMBER_ADDRESSES = 'GET_MEMBER_ADDRESSES', MEMBER_ADDRESSES_RETRIEVED = 'MEMBER_ADDRESSES_RETRIEVED', // Processes CREATE_PROCESS = 'CREATE_PROCESS', PROCESS_CREATED = 'PROCESS_CREATED', UPDATE_PROCESS = 'UPDATE_PROCESS', PROCESS_UPDATED = 'PROCESS_UPDATED', NOTIFY_UPDATE = 'NOTIFY_UPDATE', UPDATE_NOTIFIED = 'UPDATE_NOTIFIED', VALIDATE_STATE = 'VALIDATE_STATE', STATE_VALIDATED = 'STATE_VALIDATED', // Hash and merkle proof HASH_VALUE = 'HASH_VALUE', VALUE_HASHED = 'VALUE_HASHED', GET_MERKLE_PROOF = 'GET_MERKLE_PROOF', MERKLE_PROOF_RETRIEVED = 'MERKLE_PROOF_RETRIEVED', VALIDATE_MERKLE_PROOF = 'VALIDATE_MERKLE_PROOF', MERKLE_PROOF_VALIDATED = 'MERKLE_PROOF_VALIDATED', // Account management ADD_DEVICE = 'ADD_DEVICE', DEVICE_ADDED = 'DEVICE_ADDED', } export interface ClientMessage { type: MessageType; messageId?: string; apiKey?: string; [key: string]: any; } export interface ServerResponse { type: MessageType; messageId?: string; error?: string; [key: string]: any; } export interface ClientConfig { url: string; apiKey: string; timeout?: number; reconnectInterval?: number; maxReconnectAttempts?: number; } export interface ConnectionOptions { timeout?: number; headers?: Record; } export type MessageHandler = (response: ServerResponse) => void; export type ConnectionHandler = () => void; export type ErrorHandler = (error: Error) => void; export interface ClientEvents { open?: ConnectionHandler; close?: ConnectionHandler; error?: ErrorHandler; message?: MessageHandler; reconnect?: ConnectionHandler; } export interface ProcessData { processId: string; stateId: string; [key: string]: any; } export interface UpdateProcessData extends ProcessData { // Add specific fields for process updates [key: string]: any; } export interface ValidationResult { success: boolean; message?: string; data?: any; }