2025-08-08 07:31:01 +02:00

98 lines
2.5 KiB
TypeScript

// 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<string, string>;
}
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;
}