/** * @name ui/runtime-logo-resolver * @description Runtime favicon fetcher with in-memory + filesystem cache. * * Instead of shipping static logo files in the repo, this resolver fetches * favicons from each protocol's website at runtime, caches them to disk, * and serves them from the SAP MCP server's /logos/{protocol-id} endpoint. * * Resolution order: * 1. In-memory cache (fastest, already fetched this session) * 2. Filesystem cache (~/.local/share/mcp-sap/logos/{protocol-id}.{ext}) * 3. Inline SVG fallback (initials + brand color, always available) * * @module ui/runtime-logo-resolver */ export interface ProtocolFaviconEntry { readonly id: string; readonly name: string; readonly website: string; readonly initials: string; readonly color: string; readonly inlineSvg?: string; } export interface ResolvedLogo { readonly buffer: Buffer; readonly mimeType: string; readonly source: 'memory' | 'cache' | 'fetched' | 'fallback'; } export declare function registerFaviconEntry(entry: ProtocolFaviconEntry): void; /** * Resolve a protocol logo as a Buffer + MIME type. * Fetches the favicon from the protocol's website on first access, * then caches it to memory + disk for subsequent requests. * * @param protocolId - e.g. 'jupiter', 'adrena', 'metaplex' * @returns ResolvedLogo with buffer, mimeType, and source */ export declare function resolveFavicon(protocolId: string): Promise; /** * Get the inline SVG for a protocol logo (for use in HTML cards without * a network request). Uses inlineSvg if available, otherwise generates * a fallback with initials + brand color. */ export declare function resolveLogoInline(protocolId: string): string; /** * List all registered protocol IDs. */ export declare function listProtocols(): string[]; //# sourceMappingURL=runtime-logo-resolver.d.ts.map