import { EventEmitter } from '@angular/core';
import { BehaviorSubject } from 'rxjs';
import { IconData } from '@ironsource/fusion-ui/components/icon/common/entities';
import { tooltipConfiguration } from '@ironsource/fusion-ui/components/tooltip';
import { TestIdsService } from '@ironsource/fusion-ui/services/test-ids';
import { ToggleTestIdModifiers } from '@ironsource/fusion-ui/entities';
import { InputVariant } from '@ironsource/fusion-ui/components/input/v4';
import * as i0 from "@angular/core";
export declare class ToggleV4Component {
    #private;
    private uniqueIdService;
    id: string;
    labelText?: string;
    labelHelpIcon?: IconData;
    labelTooltipText?: string;
    labelTooltipConfiguration?: tooltipConfiguration;
    helperText: string;
    helperIcon: string;
    helperVariant: InputVariant;
    startIcon?: IconData;
    endIcon?: IconData;
    color: 'primary' | 'test';
    size: 'small' | 'medium';
    set loading(value: boolean);
    set disabled(value: boolean);
    set model(value: boolean);
    get model(): boolean;
    modelChange: EventEmitter<any>;
    testId?: string;
    /** @internal */
    testIdToggleModifiers: typeof ToggleTestIdModifiers;
    /** @internal */
    testIdsService: TestIdsService;
    /** @internal */
    loading$: BehaviorSubject<boolean>;
    /** @internal */
    checked$: BehaviorSubject<boolean>;
    /** @internal */
    disabled$: BehaviorSubject<boolean>;
    /** @ignore */
    change($event: Event): void;
    /**
     * 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?(disabled: boolean): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ToggleV4Component, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ToggleV4Component, "fusion-toggle", never, { "id": { "alias": "id"; "required": false; }; "labelText": { "alias": "labelText"; "required": false; }; "labelHelpIcon": { "alias": "labelHelpIcon"; "required": false; }; "labelTooltipText": { "alias": "labelTooltipText"; "required": false; }; "labelTooltipConfiguration": { "alias": "labelTooltipConfiguration"; "required": false; }; "helperText": { "alias": "helperText"; "required": false; }; "helperIcon": { "alias": "helperIcon"; "required": false; }; "helperVariant": { "alias": "helperVariant"; "required": false; }; "startIcon": { "alias": "startIcon"; "required": false; }; "endIcon": { "alias": "endIcon"; "required": false; }; "color": { "alias": "color"; "required": false; }; "size": { "alias": "size"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "model": { "alias": "model"; "required": false; }; "testId": { "alias": "testId"; "required": false; }; }, { "modelChange": "modelChange"; }, never, never, true, never>;
}
