import { AfterContentInit, OnInit, Provider } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import * as i0 from "@angular/core";
export declare const CHECKBOX_CONTROL_VALUE_ACCESSOR: Provider;
declare type AvailableValues = boolean | string | number;
/**
 * Add checkbox functionality to any element
 */
export declare class ButtonCheckboxDirective implements ControlValueAccessor, OnInit, AfterContentInit {
    /** Truthy value, will be set to ngModel */
    btnCheckboxTrue: AvailableValues;
    /** Falsy value, will be set to ngModel */
    btnCheckboxFalse: AvailableValues;
    /** Permet de désactiver une case à cocher */
    get disableCheckbox(): boolean;
    set disableCheckbox(disabled: boolean);
    role: string;
    tabindex: number;
    state: boolean;
    get checkboxDisabled(): true | undefined;
    protected value?: AvailableValues;
    protected onChange: Function;
    protected onTouched: Function;
    private _disabled;
    private _firstIsDisabledState;
    onClick(e?: Event): void;
    ngOnInit(): void;
    ngAfterContentInit(): void;
    protected get trueValue(): AvailableValues;
    protected get falseValue(): AvailableValues;
    toggle(state: boolean): void;
    writeValue(value: boolean | string | null): void;
    registerOnChange(fn: () => void): void;
    registerOnTouched(fn: () => void): void;
    setDisabledState(disabled: boolean): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ButtonCheckboxDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<ButtonCheckboxDirective, "[btnCheckbox]", never, { "btnCheckboxTrue": "btnCheckboxTrue"; "btnCheckboxFalse": "btnCheckboxFalse"; "disableCheckbox": "disableCheckbox"; }, {}, never, never, false, never>;
}
export {};
