import { TrustLevel } from './trust-level.js'; export interface SessionMetrics { messagesSent: number; messagesReceived: number; piiRedactions: number; threatDetections: number; hmacFailures: number; totalInteractions: number; } export interface FederationSessionProps { readonly sessionId: string; readonly localNodeId: string; readonly remoteNodeId: string; readonly trustLevel: TrustLevel; readonly negotiatedCapabilities: readonly string[]; readonly createdAt: Date; readonly expiresAt: Date; readonly heartbeatInterval: number; readonly sessionToken: string; readonly metrics: SessionMetrics; } export declare class FederationSession { readonly sessionId: string; readonly localNodeId: string; readonly remoteNodeId: string; readonly negotiatedCapabilities: readonly string[]; readonly createdAt: Date; readonly heartbeatInterval: number; readonly sessionToken: string; private _trustLevel; private _expiresAt; private _lastHeartbeat; private _metrics; private _active; constructor(props: FederationSessionProps); get trustLevel(): TrustLevel; get expiresAt(): Date; get lastHeartbeat(): Date; get metrics(): Readonly; get active(): boolean; isExpired(): boolean; isHeartbeatOverdue(): boolean; recordHeartbeat(): void; renew(newExpiresAt: Date): void; updateTrustLevel(level: TrustLevel): void; recordMessageSent(): void; recordMessageReceived(): void; recordPiiRedaction(): void; recordThreatDetection(): void; recordHmacFailure(): void; terminate(): void; toProps(): FederationSessionProps; static createMetrics(): SessionMetrics; } //# sourceMappingURL=federation-session.d.ts.map