import { ReactNode } from 'react'; import type { Styles } from '@cleartrip/ct-design-types'; import type { TypographyVariantType } from '@cleartrip/ct-design-typography'; /** * Interface for Radio component props */ export interface IRadio { /** Unique identifier for the radio button */ id: string; /** Determines if the radio button is checked */ checked?: boolean; /** Disables the radio button when true */ disabled?: boolean; /** Callback function triggered on selection change */ onChange?: () => void; /** Label content, can be a string or React node */ label: ReactNode | string; /** Typography variant for the label */ labelVariant?: TypographyVariantType; /** Call-to-action content within the label */ labelCTA?: ReactNode; /** Custom styles for different parts of the radio button */ styleConfig?: { /** Root container styles */ root?: Styles[]; /** Radio button styles */ radioBtn?: Styles[]; /** Label container styles */ labelContainer?: Styles[]; }; /** Additional props forwarded to the root element */ rootProps?: Record; } /** * @deprecated Use `IRadio` instead — kept as an alias for backward type compatibility. */ export type RadioProps = IRadio;