import { IconName } from '../../types'; import { IconProps } from '../Icon/Icon'; import { SegmentedControlProps } from './SegmentedControl'; export interface SegmentedControlOption { /** Label text displayed inside the segment. Also used as the accessible name of icon-only segments. */ label: string; /** Unique value of the segment, used to identify the selected option. */ value: string; /** Disables this individual segment, preventing user interaction. * @default false */ disabled?: boolean; /** Hides the label visually to render an icon-only segment. Requires `iconName` or `iconSource`. * @default false */ hideLabel?: boolean; /** Name of the icon to display. */ iconName?: IconName; /** URL or path for a custom icon. */ iconSource?: IconProps['source']; } export declare const SEGMENTED_CONTROL_SIZE: readonly ["small", "medium", "large"]; export type SegmentedControlSize = (typeof SEGMENTED_CONTROL_SIZE)[number]; export declare const SEGMENTED_CONTROL_VARIANT: readonly ["default", "contrast"]; export type SegmentedControlVariant = (typeof SEGMENTED_CONTROL_VARIANT)[number]; /** Minimum number of segments a segmented control should contain. */ export declare const SEGMENTED_CONTROL_MIN_OPTIONS = 2; /** Maximum number of segments recommended for a segmented control. */ export declare const SEGMENTED_CONTROL_MAX_OPTIONS = 5; /** Determines whether a segment displays an icon. */ export declare const hasIcon: (option: SegmentedControlOption) => boolean; /** * Determines whether a segment should be rendered icon-only. * A segment is icon-only when `hideLabel` is set and an icon is provided. */ export declare const isIconOnlyOption: (option: SegmentedControlOption) => boolean; type ValidationProps = Pick; export declare const validateSegmentedControlProps: ({ legend, name, options, }: ValidationProps) => void; export {};