import type { ControlSize } from "@charcuterie/tokens"; import type { ReactNode } from "react"; import type { SegmentedItem } from "./SegmentedControl.tsx"; export type SegmentedOptionProps = { isChecked: boolean; isFullWidth: boolean; item: SegmentedItem; onChoose: (value: string) => void; /** `RovingFocus.register` — membership of the arrow-key group. */ registerFocus: (value: string) => () => void; /** `SinglePicker.register` — membership of the choice. */ registerSelection: (value: string) => () => void; size: ControlSize; tabIndex: number; trackElement: (value: string, element: HTMLButtonElement | null) => void; }; /** * Its own file for the same reason `TabTrigger` is: **both * registrations are effects**, and an effect cannot run in a loop. * Any member of a registering group ends up shaped like this. * * The checked option is filled rather than merely tinted. A * segmented control's whole job is to be readable at a glance from * across a room — rip-deck's lives above a nine-bay grid on a wall * display — and a one-shade difference does not survive that or a * `daylight` theme in sunlight. */ export declare const SegmentedOption: ({ isChecked, isFullWidth, item, onChoose, registerFocus, registerSelection, size, tabIndex, trackElement, }: SegmentedOptionProps) => ReactNode; //# sourceMappingURL=SegmentedOption.d.ts.map