export type DecodedValueKind = { type: 'u8'; } | { type: 'u7'; } | { type: 'u14_be'; offsetMsb: number; offsetLsb: number; }; export type DecodedDisplayBucket = { rawMin: number; rawMax: number; label: string; }; export type DecodedValueMeta = { /** Display units (e.g., ms, Hz, %, s). */ units?: string; /** Display-space min (not necessarily raw min). */ min?: number; /** Display-space max (not necessarily raw max). */ max?: number; /** Actual usable raw max (overrides bit-width default when the synth clamps before 255/127). */ rawMax?: number; /** Whether this parameter is available as a Mod Matrix destination. */ modDestination?: boolean; /** Optional raw-value buckets for mixed-mode displays (e.g. sync labels then Hz buckets). */ displayBuckets?: DecodedDisplayBucket[]; }; export type DecodedFieldSpec = { /** Structured param name (prefer canonical when available). */ name: string; /** 0-based byte offset into the *decoded* edit-buffer payload. */ offset: number; kind: DecodedValueKind; /** Optional mapping for enum-like parameters (raw -> label). */ valueMap?: Record; /** Optional condition to determine when this field should be included. */ condition?: { field: string; equals: number; }; /** Optional UI hints (e.g., synth screen label + full name). */ ui?: { abbr?: string; name?: string; index?: number; }; /** Optional value metadata (units, ranges, and other hints). */ value?: DecodedValueMeta; notes?: string; }; export type DerivedValue = { raw: number; normalized?: number; label?: string; description?: string; ui?: { abbr?: string; name?: string; index?: number; }; }; export declare const FX_TYPE_VALUE_MAP: Record; /** * Incremental, reverse-engineered map of decoded edit-buffer bytes. * * Important: This is *not* from the official SysEx docs; it’s learned by * sweeping a parameter (NRPN) and diffing snapshots. */ export declare const DECODED_EDIT_BUFFER_MAP: readonly DecodedFieldSpec[]; export declare function decodeDerivedFieldsFromEditBuffer(decodedTrimmed242: Uint8Array): Record; export declare function getDecodedFieldSpec(name: string): DecodedFieldSpec | undefined; export declare function listDecodedFieldSpecs(): readonly DecodedFieldSpec[];