import type { Generic } from 'adopted-style-sheets';
import type { InputRadioProps, InputRadioWatches, Option, OptionsPropType, Orientation, PropLabelWithExpertSlot, SelectOption, StencilUnknown, Stringified, W3CInputValue } from '@public-ui/schema';
import { InputController } from '../@deprecated/input/controller';
export declare const fillKeyOptionMap: <T>(keyOptionMap: Map<string, Option<T>>, options: SelectOption<T>[], preKey?: string) => void;
type RequiredProps = NonNullable<unknown>;
type OptionalProps = {
    required: boolean;
} & PropLabelWithExpertSlot;
type InputCheckboxRadioProps = Generic.Element.Members<RequiredProps, OptionalProps>;
type InputCheckboxRadioWatches = Generic.Element.Watchers<RequiredProps, OptionalProps>;
export declare class InputCheckboxRadioController extends InputController implements InputCheckboxRadioWatches {
    protected readonly component: Generic.Element.Component & InputCheckboxRadioProps;
    constructor(component: Generic.Element.Component & InputCheckboxRadioProps, name: string, host?: HTMLElement);
    validateRequired(value?: boolean): void;
    componentWillLoad(): void;
}
export declare class InputRadioController extends InputCheckboxRadioController implements InputRadioWatches {
    protected readonly component: Generic.Element.Component & InputRadioProps;
    private onStateChange;
    private readonly keyOptionMap;
    constructor(component: Generic.Element.Component & InputRadioProps, name: string, host?: HTMLElement);
    readonly getOptionByKey: (key: string) => Option<W3CInputValue> | undefined;
    private readonly isValueInOptions;
    protected readonly afterPatchOptions: (value: unknown, _state: Record<string, unknown>, _component: Generic.Element.Component, key: string) => void;
    protected readonly beforePatchOptions: (_value: unknown, nextState: Map<string, unknown>) => void;
    validateOrientation(value?: Orientation): void;
    validateOptions(value?: OptionsPropType): void;
    validateValue(value?: Stringified<StencilUnknown>): void;
    componentWillLoad(onChange?: (event: Event) => void): void;
}
export {};
