/**-----------------------------------------------------------------------------------------
* Copyright © 2024 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { Renderer2, EventEmitter, ElementRef, Injector, ChangeDetectorRef, NgZone } from '@angular/core';
import { ControlValueAccessor, NgControl } from '@angular/forms';
import { ComponentType } from './utils';
import { CheckBoxRounded, InputSize } from './models';
import * as i0 from "@angular/core";
/**
 * @hidden
 */
export declare class RadioCheckBoxBase implements ControlValueAccessor {
    private componentType;
    protected hostElement: ElementRef;
    protected renderer: Renderer2;
    protected cdr: ChangeDetectorRef;
    protected ngZone: NgZone;
    protected injector: Injector;
    /**
     * @hidden
     */
    focusableId: string;
    /**
     * Sets the `title` attribute of the `input` element of the component.
     */
    title: string;
    /**
     * Sets the `name` attribute for the component.
     */
    name: string;
    /**
     * Sets the disabled state of the component.
     *
     * @default false
     */
    disabled: boolean;
    /**
     * Specifies the `tabindex` of the component.
     *
     * @default 0
     */
    tabindex: number;
    /**
     * @hidden
     */
    set tabIndex(tabIndex: number);
    get tabIndex(): number;
    /**
     * Provides a value for the component.
     */
    value: string;
    /**
     * The size property specifies the width and height of the component.
     *
     * @default 'medium'
     *
     * The possible values are:
     * * `small`
     * * `medium`
     * * `large`
     * * `none`
     */
    set size(size: InputSize);
    get size(): InputSize;
    /**
     * Sets the HTML attributes of the inner focusable input element. Attributes which are essential for certain component functionalities cannot be changed.
     */
    set inputAttributes(attributes: {
        [key: string]: string;
    });
    get inputAttributes(): {
        [key: string]: string;
    };
    ngOnInit(): void;
    /**
     * Fires each time the user focuses the component.
     *
     * > To wire the event programmatically, use the `onFocus` property.
     */
    onFocus: EventEmitter<any>;
    /**
     * Fires each time the component gets blurred.
     *
     * > To wire the event programmatically, use the `onBlur` property.
     */
    onBlur: EventEmitter<any>;
    /**
     * Focuses the component.
     */
    focus(): void;
    /**
     * Blurs the component.
     */
    blur(): void;
    /**
     * @hidden
     */
    handleInputBlur: () => void;
    /**
     * @hidden
     */
    handleFocus(): void;
    /**
     * @hidden
     */
    handleBlur(): void;
    /**
     * @hidden
     */
    registerOnChange(fn: (_: any) => void): void;
    /**
     * @hidden
     */
    registerOnTouched(fn: () => any): void;
    /**
     * @hidden
     */
    get isControlRequired(): boolean;
    /**
     * @hidden
     */
    get isControlInvalid(): boolean;
    /**
     * Represents the visible `input` element.
     */
    input: ElementRef;
    /**
     * @hidden
     */
    get isFocused(): boolean;
    /**
     * @hidden
     */
    set isFocused(value: boolean);
    /**
     * @hidden
     * Called when the status of the component changes to or from `disabled`.
     * Depending on the value, it enables or disables the appropriate DOM element.
     *
     * @param isDisabled
     */
    setDisabledState(isDisabled: boolean): void;
    protected control: NgControl;
    protected focusChangedProgrammatically: boolean;
    protected get defaultAttributes(): any;
    protected parsedAttributes: {
        [key: string]: string;
    };
    protected _inputAttributes: {
        [key: string]: string;
    };
    protected ngChange: Function;
    protected ngTouched: Function;
    private _isFocused;
    private _size;
    constructor(componentType: ComponentType, hostElement: ElementRef, renderer: Renderer2, cdr: ChangeDetectorRef, ngZone: NgZone, injector: Injector);
    /**
     * @hidden
     */
    writeValue(_value: any): void;
    protected handleClasses(value: InputSize | CheckBoxRounded, input: string): void;
    protected setInputAttributes(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<RadioCheckBoxBase, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<RadioCheckBoxBase, "ng-component", never, { "focusableId": "focusableId"; "title": "title"; "name": "name"; "disabled": "disabled"; "tabindex": "tabindex"; "tabIndex": "tabIndex"; "value": "value"; "size": "size"; "inputAttributes": "inputAttributes"; }, { "onFocus": "focus"; "onBlur": "blur"; }, never, never, false, never>;
}
