import type { ChangeSignal } from "../store/changeSignal.js"; import { type DevtoolsControlKind, type DiscoverySkip, type TunableOptions } from "./tunableSchema.js"; import type { ControlRecord } from "./controls.js"; import type { Devtools, SystemProbeReading, Tunable } from "./types.js"; /** Internal record for an auto-discovered field: identity, kind, initial value, source object, and get/set accessors. */ export interface DiscoveredRecord { id: string; table: string; key: string; kind: DevtoolsControlKind; initial: unknown; enabled: boolean; source: object | null; options?: TunableOptions; get(): unknown; set(value: unknown): void; } /** Discovery subsystem: the public discover and probes facades plus internal record map and helpers. */ export interface DiscoverModule { discover: Devtools["discover"]; probes: Devtools["probes"]; readProbes: () => Record; readSystems: () => Record; enableDiscovered: (id: string) => void; discoveredRecords: Map; getDiscoverySkips: () => readonly DiscoverySkip[]; } /** Create the discovery subsystem that scans objects/tables for tunable fields and binds them as controls and probes. */ export declare const createDiscoverModule: (deps: { signal: ChangeSignal; register: (name: string, initial: T, options?: TunableOptions) => Tunable; controlRecords: Map; }) => DiscoverModule;