import * as _angular_core from '@angular/core';
import { AfterContentInit, OnChanges, OnInit, ElementRef, EventEmitter } from '@angular/core';
import { ControlValueAccessor, FormControl } from '@angular/forms';

declare const AP_CHECKBOX_CONTROL_VALUE_ACCESSOR: {
    provide: _angular_core.InjectionToken<readonly ControlValueAccessor[]>;
    useExisting: _angular_core.Type<any>;
    multi: boolean;
};
declare class ToggleComponent implements ControlValueAccessor, AfterContentInit, OnChanges, OnInit {
    private readonly symbolRegistry;
    private readonly dialog;
    private readonly cdr;
    inputElement: ElementRef<HTMLInputElement>;
    labelElement: ElementRef<HTMLInputElement>;
    ariaLabel: string;
    ariaLabelledby: string | null;
    ariaDescribedby: string | null;
    labelPosition: 'left' | 'right';
    disabled: boolean;
    checked: boolean;
    required: boolean;
    confirm: boolean;
    confirmMessage: string;
    confirmOk: string;
    confirmCancel: string;
    confirmTitle: string;
    set name(name: string);
    get name(): string;
    readonly change: EventEmitter<boolean>;
    hasLabel: boolean;
    private _name;
    private _controlValueAccessorChangeFn;
    onTouched: () => void;
    ngOnChanges(): void;
    ngOnInit(): void;
    ngAfterContentInit(): void;
    onValueChange(): void;
    changeValue(): void;
    focus(): void;
    writeValue(value: boolean): void;
    registerOnChange(fn: (value: boolean) => void): void;
    registerOnTouched(fn: () => void): void;
    setDisabledState(isDisabled: boolean): void;
    validate({ value }: FormControl): false | {
        invalid: boolean;
    };
    _preventBubblingFromLabel(event: MouseEvent): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<ToggleComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<ToggleComponent, "ap-toggle", never, { "ariaLabel": { "alias": "aria-label"; "required": false; }; "ariaLabelledby": { "alias": "aria-labelledby"; "required": false; }; "ariaDescribedby": { "alias": "aria-describedby"; "required": false; }; "labelPosition": { "alias": "labelPosition"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "checked": { "alias": "checked"; "required": false; }; "required": { "alias": "required"; "required": false; }; "confirm": { "alias": "confirm"; "required": false; }; "confirmMessage": { "alias": "confirmMessage"; "required": false; }; "confirmOk": { "alias": "confirmOk"; "required": false; }; "confirmCancel": { "alias": "confirmCancel"; "required": false; }; "confirmTitle": { "alias": "confirmTitle"; "required": false; }; "name": { "alias": "name"; "required": true; }; }, { "change": "change"; }, never, ["*"], true, never>;
    static ngAcceptInputType_disabled: unknown;
    static ngAcceptInputType_required: unknown;
}

export { AP_CHECKBOX_CONTROL_VALUE_ACCESSOR, ToggleComponent };
