/** * A2 — in-memory scanner_id → (runtime, scanner) registry. * * A5 (supervisor) populates this at launch; until then it is empty and every * POST is rejected as unknown scanner_id. * * Default implementation: Map-backed. A6 will not replace this interface; * it will only add durable persistence behind it. */ import type { ExternalFieldDefinition } from "../../scanners/scanner-definition.js"; export interface ScannerRegistryEntry { scannerId: string; runtimeId: string; scannerName: string; wallet: string; fields: Record; } export interface ScannerRegistry { resolve(scannerId: string): ScannerRegistryEntry | undefined; register(entry: ScannerRegistryEntry): void; unregister(scannerId: string): void; /** All live entries — lets a reader resolve scannerName → current (ephemeral) scanner_id. */ entries(): ScannerRegistryEntry[]; } /** * Default Map-backed implementation of ScannerRegistry. * * Zombie fence: resolve(unknown or unregistered) returns undefined. * When A5 relaunches a scanner, it unregisters the old id, so leftover * processes carrying the old id are refused. */ export declare class MapScannerRegistry implements ScannerRegistry { private store; resolve(scannerId: string): ScannerRegistryEntry | undefined; register(entry: ScannerRegistryEntry): void; unregister(scannerId: string): void; entries(): ScannerRegistryEntry[]; } //# sourceMappingURL=scanner-registry.d.ts.map