import { type DistanceBand, type Eye, type OpticalPrescriptionMode, type OpticalPrescriptionValue, type PrismBase, type RefractionRow } from './optical-prescription-data'; import { type OpticalPrescriptionChart } from './optical-prescription-charts'; export interface OpticalPrescriptionProps { /** Opaque instance id — emitted as `data-component-id` for the agent registry. */ id?: string; /** `'interactive'` enables editing; `'display'` is a read-only grid. Default `'interactive'`. */ mode?: OpticalPrescriptionMode; /** Controlled prescription value. */ value?: OpticalPrescriptionValue; /** Uncontrolled initial value. */ defaultValue?: OpticalPrescriptionValue; /** Fired whenever the prescription changes. */ onChange?: (next: OpticalPrescriptionValue) => void; /** Distance bands to render, in order. Default `['far', 'near']`. */ bands?: DistanceBand[]; /** Render the prism + base columns. Default `false`. */ showPrism?: boolean; /** Render the metadata strip (PD, lens type, axis system, note). Default `true`. */ metadata?: boolean; /** The standard prescription charts (TABO axis dials, power crosses, PD * schematic, prism base roses). `true` renders every chart the value * carries data for; an array cherry-picks kinds; `false` hides them all. * Default `true`. */ charts?: boolean | OpticalPrescriptionChart[]; /** The distance band the charts read from. Default: the first rendered * band carrying at least one value. */ chartsBand?: DistanceBand; /** Vertical rhythm. Default `'comfortable'`. */ density?: 'comfortable' | 'compact'; /** Accessible label override for the prescription region. */ ariaLabel?: string; /** Extra class names on the wrapper. */ className?: string; } export interface OpticalPrescriptionHandle { /** Focus an eye's row (first editable cell in interactive mode), optionally within a band. */ focusEye: (eye: Eye, band?: DistanceBand) => void; /** Read the current prescription value. */ getValue: () => OpticalPrescriptionValue; /** Replace the prescription value. */ setValue: (next: OpticalPrescriptionValue) => void; /** Read one eye's refraction row at a band (undefined when absent). */ getRow: (band: DistanceBand, eye: Eye) => RefractionRow | undefined; /** Set (or clear, with null) a single refraction cell. */ setCell: (band: DistanceBand, eye: Eye, field: keyof RefractionRow, value: number | PrismBase | null) => void; /** Clear every refraction row in a band. */ clearBand: (band: DistanceBand) => void; /** The distance bands carrying at least one value. */ getBands: () => DistanceBand[]; } export declare const OpticalPrescription: import("react").ForwardRefExoticComponent>; //# sourceMappingURL=optical-prescription.d.ts.map