import type { Database } from 'better-sqlite3'; import { type BeamDnsResolver } from './discovery.js'; import type { FederationPeer, FederationPeerRow } from './types.js'; export declare const MAX_FEDERATION_HOPS = 3; type FetchLike = typeof fetch; export type ResolvedAgentDocument = Record & { beam_id?: string; beamId?: string; public_key?: string; publicKey?: string; trust_score?: number; trustScore?: number; ttl?: number; }; export type ResolvedAgent = { scope: 'local' | 'cache' | 'peer' | 'discovered'; agent: ResolvedAgentDocument; directoryUrl: string | null; }; export declare function getLocalDirectoryUrl(): string; export declare function getFederationSharedSecret(): string; export declare function isPrivateDirectoryMode(): boolean; export declare function getFederationRequestHeaders(extra?: Record): Headers; export declare function getCachedFederatedAgent(db: Database, beamId: string, now?: number): ResolvedAgent | null; export declare function getCachedFederatedPublicKey(db: Database, beamId: string): string | null; export declare function listPeers(db: Database): FederationPeerRow[]; export declare function getPeer(db: Database, directoryUrl: string): FederationPeerRow | null; export declare function registerPeer(db: Database, directoryUrl: string, publicKey: string, options?: { actor?: string; trustLevel?: number; status?: string; }): FederationPeer; export declare function syncAgents(db: Database, peerUrl: string, options?: { fetchImpl?: FetchLike; actor?: string; }): Promise<{ peerUrl: string; synced: number; }>; export declare function calculateTrustDelta(assertedTrust: number, hopCount: number): number; export declare function applyTrustDecay(trustScore: number, assertedAt: string, now?: number): number; export declare function applyTrustAssertion(db: Database, input: { beamId: string; sourceDirectoryUrl: string; originDirectoryUrl?: string; assertedTrust: number; hopCount: number; assertedAt?: string; }): number; export declare function getEffectiveFederatedTrust(db: Database, beamId: string, now?: number): number; export declare function propagateTrust(db: Database, peerUrl: string, beamId: string, trustDelta: number, options?: { fetchImpl?: FetchLike; actor?: string; hopCount?: number; originDirectoryUrl?: string; }): Promise<{ peerUrl: string; beamId: string; trustDelta: number; }>; export declare function queryPeerForAgent(db: Database, peerUrl: string, beamId: string, options?: { fetchImpl?: FetchLike; localOnly?: boolean; }): Promise; export declare function resolveAgentAcrossFederation(db: Database, beamId: string, options?: { fetchImpl?: FetchLike; resolver?: BeamDnsResolver; localOnly?: boolean; autoDiscover?: boolean; }): Promise; export {};