import { EventEmitter, OnInit } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { UniqueIdService } from '@ironsource/fusion-ui/services/unique-id';
import { DomSanitizer } from '@angular/platform-browser';
import * as i0 from "@angular/core";
export declare abstract class CheckboxBaseComponent implements OnInit, ControlValueAccessor {
    private uniqueIdService;
    protected sanitizer: DomSanitizer;
    /** checkbox DOM element id. If not set, will be generated.
     * @internal
     * */
    id: string;
    set label(value: string);
    set isIndeterminate(value: boolean);
    set disabled(value: boolean);
    backgroundColor: string;
    /** @internal */
    value: string;
    /** @internal */
    set checked(val: boolean);
    changed: EventEmitter<boolean>;
    /** @internal */
    get label(): string;
    /** @internal */
    get disabled(): boolean;
    /** @internal */
    get checked(): boolean;
    /** @internal */
    get isIndeterminate(): boolean;
    private _label;
    private _disabled;
    private _checked;
    private _isIndeterminate;
    constructor(uniqueIdService: UniqueIdService, sanitizer: DomSanitizer);
    ngOnInit(): void;
    /** @internal */
    checkStateChange($event: Event): void;
    /** @internal */
    getColoredBackgroundImage(): any;
    /**
     * Method to call when value has changes.
     * @ignore
     */
    propagateChange: (_: boolean) => void;
    /**
     * Method to call when the component is touched (when it was is clicked).
     * @ignore
     */
    propagateTouched: () => void;
    /**
     * update value from model to the component
     * @ignore
     */
    writeValue(value: boolean): void;
    /**
     * Informs the outside world about changes.
     * see method propagateChange call - this.propagateChange(this.model);
     * @ignore
     */
    registerOnChange(fn: any): void;
    /**
     * on click
     * @ignore
     */
    registerOnTouched(fn: any): void;
    /**
     * on set form controll enabled / disabled
     * also do UI Component enabled / disabled
     * @ignore
     */
    setDisabledState?(value: boolean): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<CheckboxBaseComponent, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<CheckboxBaseComponent, never, never, { "id": { "alias": "id"; "required": false; }; "label": { "alias": "label"; "required": false; }; "isIndeterminate": { "alias": "isIndeterminate"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; }; "value": { "alias": "value"; "required": false; }; "checked": { "alias": "checked"; "required": false; }; }, { "changed": "changed"; }, never, never, false, never>;
}
