import { OnInit, SimpleChanges, ElementRef } from "@angular/core";
import { EventEmitter } from "@angular/core";
import { BehaviorSubject } from "rxjs";
import { CssUtils } from "../utils";
import { BlurEvent, RadioGroupProperties } from "./dxc-radio-group.types";
import { RadioGroupService } from "./services/radio-group.service";
import { RadioItem } from "./interfaces/radio-item.interface";
import * as i0 from "@angular/core";
export declare class DxcRadioGroupComponent implements OnInit {
    private utils;
    private service;
    styles: any;
    /**
     * Value of the radio group. If undefined, the component will be uncontrolled
     * and the value will be managed internally by the component.
     */
    label: string;
    /**
     * Helper text to be placed above the radio group.
     */
    helperText: string;
    /**
     * Name attribute of the input element. This attribute will allow users to
     * find the component's value during the submit event.
     */
    name: string;
    /**
     * Value of the radio group. If undefined, the component will be uncontrolled
     * and the value will be managed internally by the component.
     */
    value?: string;
    /**
     * If true, the component will be marked as readonly.
     */
    readOnly: boolean;
    /**
     * If true, the component will be disabled.
     */
    disabled: boolean;
    /**
     * If true, the radio group will be optional, showing (Optional) next to the
     * label and adding a default last option with an empty string as value.
     * Otherwise, the field will be considered required and an error will be
     * passed as a parameter to the OnBlur functions if an option wasn't selected.
     */
    optional: boolean;
    /**
     * Label of the optional item.
     */
    optionalItemLabel?: string;
    /**
     * Default value of the radio group, this property is used to have a default
     * value and also have uncontrolled behaviour.
     */
    defaultValue: string;
    /**
     * An array of objects representing the selectable options. Each object
     * RadioItem has the following properties:
     * - label: string: Label of the option placed next to the radio input.
     * - value: string: Value of the option. It should be unique and not
     * an empty string, which is reserved to the optional item added by optional prop.
     * - disabled: boolean: disables the option.
     */
    options: RadioItem[];
    /**
     * Sets the orientation of the options within the radio group.
     */
    stacking: "row" | "column";
    /**
     * Value of the tabindex attribute.
     */
    tabIndexValue: number;
    /**
     * If it is a defined value and also a truthy string, the component will
     * change its appearance, showing the error below the radio group. If the
     * defined value is an empty string, it will reserve a space below the
     * component for a future error, but it would not change its look. In case of
     * being undefined or null, both the appearance and the space for the error
     * message would not be modified.
     */
    error: string;
    onChange: EventEmitter<string>;
    onBlur: EventEmitter<BlurEvent>;
    inputRef: ElementRef;
    radioGroupId: string;
    optionList: RadioItem[];
    indexToFocus: number;
    private isControlled;
    private subscriptionOptions;
    private subcriptionNewValue;
    onFocusOutHandler($event: any): void;
    onKeyHandler($event: any): void;
    defaultInputs: BehaviorSubject<RadioGroupProperties>;
    constructor(utils: CssUtils, service: RadioGroupService);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    focusHandler(): void;
    /**
     * Closest not disabled option to focus
     */
    indexToFocusHandler(direction: string): void;
    getDynamicStyle(inputs: any): string;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DxcRadioGroupComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DxcRadioGroupComponent, "dxc-radio-group", never, { "label": "label"; "helperText": "helperText"; "name": "name"; "value": "value"; "readOnly": "readOnly"; "disabled": "disabled"; "optional": "optional"; "optionalItemLabel": "optionalItemLabel"; "defaultValue": "defaultValue"; "options": "options"; "stacking": "stacking"; "tabIndexValue": "tabIndexValue"; "error": "error"; }, { "onChange": "onChange"; "onBlur": "onBlur"; }, never, never>;
}
//# sourceMappingURL=dxc-radio-group.component.d.ts.map