import { GuidV4Uint8Array } from '@digitaldefiance/ecies-lib'; import { BlockMetadata } from '../../blockMetadata'; import { NodeCapability } from '../../enumerations'; import { DataTemperature } from '../../enumerations/dataTemperature'; import { NodeStatus } from '../../enumerations/nodeStatus'; import { Checksum } from '../../types/checksum'; import { NodeConfig } from './nodeConfig'; import { NodeLocation } from './nodeLocation'; import { NodeResources } from './nodeResources'; /** * Core node interface. * * Uses Uint8Array for browser compatibility (Requirement 18.6). */ export interface INode { id: GuidV4Uint8Array; publicKey: Uint8Array; version: string; status: NodeStatus; capabilities: Set; location: NodeLocation; resources: NodeResources; config: NodeConfig; connect(): Promise; disconnect(): Promise; updateStatus(status: NodeStatus): Promise; hasBlock(id: Checksum): Promise; getBlockMetadata(id: Checksum): Promise; updateBlockTemperature(id: Checksum, temperature: DataTemperature): Promise; findPeers(): Promise; getPeerInfo(peerId: GuidV4Uint8Array): Promise; getHealth(): Promise<{ status: NodeStatus; timestamp: Date; metrics: { storage: number; bandwidth: number; uptime: number; peers: number; }; }>; } //# sourceMappingURL=node.d.ts.map