import { type MuscleChart, type MuscleFinding, type MuscleSchemeMode, type MuscleViewId, type FigureVariant, type FindingType } from './muscle-scheme-data'; export interface MuscleSchemeProps { /** Opaque instance id — emitted as `data-component-id` for the agent registry. */ id?: string; /** Muscle figure variant. Default `'adult-male'`. */ figure?: FigureVariant; /** * Explicit view ids to expose. When more than one, they render as tabs. * Defaults to the front + back pair for `figure`. */ views?: MuscleViewId[]; /** `'interactive'` enables region selection + finding edits; `'display'` is read-only. */ mode?: MuscleSchemeMode; /** Controlled findings — `Record`. */ value?: MuscleChart; /** Uncontrolled initial findings. */ defaultValue?: MuscleChart; /** Fired whenever the chart changes. */ onChange?: (next: MuscleChart) => void; /** Fired when a region is activated (click / Enter / Space / focus-select). */ onSelectRegion?: (regionId: string, viewId: MuscleViewId) => void; /** * The finding type a region-click applies in interactive mode (the selected * tool in a finding picker). Clicking a region toggles this finding. */ activeFinding?: FindingType; /** Show the finding-type legend below the figure. Default `false`. */ legend?: boolean; /** * Base URL for realistic muscle illustrations, served per-view as * `${illustrationBaseUrl}/${viewId}.svg` (e.g. `…/muscular-front.svg`). * When set, each view renders that illustration as the figure and the regions * become transparent CLICK HOTSPOTS layered over it; when unset, the kit's * built-in muscle art is the fallback. The art is NOT bundled in the kit — host * it (CDN) and pass the base here, mirroring `ToothScheme`'s `assetBaseUrl`. * Trusted developer-controlled value, interpolated into an SVG `` * (which cannot execute scripts). Sourcing + licensing live in `MUSCLE-ASSETS.md`. */ illustrationBaseUrl?: string; /** Accessible label override for the chart region. */ ariaLabel?: string; /** Extra class names on the wrapper. */ className?: string; } export interface MuscleSchemeHandle { /** Programmatically focus a region by id (in the active view). */ focusRegion: (regionId: string) => void; /** Read the current chart state. */ getChart: () => MuscleChart; /** Read the findings recorded on one region (empty array if none). */ getRegion: (regionId: string) => MuscleFinding[]; /** Read the region ids carrying a given finding type. */ regionsWith: (type: FindingType) => string[]; /** Add a finding to a region (no-op if already present). */ setFinding: (regionId: string, type: FindingType, note?: string) => void; /** Remove a finding type from a region (no-op if absent). */ removeFinding: (regionId: string, type: FindingType) => void; /** Clear every finding from a region. */ clearRegion: (regionId: string) => void; /** Switch the active view. */ setView: (viewId: MuscleViewId) => void; /** Read the active view id. */ getView: () => MuscleViewId; } export declare const MuscleScheme: import("react").ForwardRefExoticComponent>; //# sourceMappingURL=muscle-scheme.d.ts.map