import { EventEmitter } from '@stencil/core';
import { RadioOption } from './radio-option.interface';
import { HintExpander } from '../ontario-hint-expander/hint-expander.interface';
import { Base, Hint } from '../../utils/common/common.interface';
import { Caption } from '../../utils/common/input-caption/caption.interface';
import { Language } from '../../utils/common/language-types';
import { RadioAndCheckboxChangeEvent, InputFocusBlurEvent } from '../../utils/events/event-handler.interface';
export interface RadioButtons extends Base {
/**
* The text to display for the radio button legend.
*
* @example
*
*
*/
hintExpander?: HintExpander | string;
/**
* This is used to determine whether the radio button is required or not.
* This prop also gets passed to the InputCaption utility to display either an optional or required flag in the label.
* If no prop is set, it will default to false (optional).
*/
required?: boolean;
/**
* The currently selected radio option value.
*
* The component keeps the host `value` in sync as users interact with the radio group.
* If `value` is provided, it takes precedence over any `checked` flags passed through `options`.
*/
value?: string;
/**
* The options for the radio button group.
*
* Each property will be passed in through an object in the options array.
* This can either be passed in as an object directly (if using react), or as a string in HTML.
* If there are multiple radio buttons in a fieldset, each radio button will be displayed as an option.
*
* In the example below, the options are being passed in as a string and there are two radio buttons to be displayed in the fieldset.
*
* @example
*
*
*/
options: string | RadioOption[];
/**
* Used to add a custom function to the radio input onChange event.
*/
customOnChange?: (event: globalThis.Event) => void;
/**
* Used to add a custom function to the radio input onBlur event.
*/
customOnBlur?: (event: globalThis.Event) => void;
/**
* Used to add a custom function to the radio input onFocus event.
*/
customOnFocus?: (event: globalThis.Event) => void;
/**
* Emitted when a keyboard input or mouse event occurs when a radio option has been changed.
*/
radioOnChange: EventEmitter;
/**
* Emitted when a keyboard input event occurs when a radio option has lost focus.
*/
radioOnBlur: EventEmitter;
/**
* Emitted when a keyboard input event occurs when a radio option has gained focus.
*/
radioOnFocus: EventEmitter;
}