export interface NetworkStatus {
  isConnected: boolean;
  chainId: number;
  networkName: string;
  currentBlockNumber: number;
  gasPrice: string;
  nodeHealth: NodeHealth[];
  lastUpdated: Date;
}

export interface NodeHealth {
  rpcUrl: string;
  isHealthy: boolean;
  latency: number;
  lastCheck: Date;
  errorMessage?: string;
}

export interface TransactionResult {
  txHash: string;
  status: 'pending' | 'confirmed' | 'failed';
  blockNumber?: number;
  gasUsed?: bigint;
  errorMessage?: string;
  confirmationTime?: number;
}

export interface OnChainDocument {
  documentId: string;
  hash: string;
  version: number;
  timestamp: Date;
  blockNumber: number;
  transactionHash: string;
}
