import { FocusMonitor } from '@angular/cdk/a11y';
import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { TransitionCheckState } from '@koobiq/components/checkbox';
import { KbqCheckedState, KbqColorDirective } from '@koobiq/components/core';
import * as i0 from "@angular/core";
type ToggleLabelPositionType = 'left' | 'right';
export declare class KbqToggleChange {
    source: KbqToggleComponent;
    checked: boolean;
}
export declare class KbqToggleComponent extends KbqColorDirective implements AfterViewInit, ControlValueAccessor, OnDestroy {
    private focusMonitor;
    private changeDetectorRef;
    big: boolean;
    inputElement: ElementRef<HTMLInputElement>;
    labelPosition: ToggleLabelPositionType;
    ariaLabel: string;
    ariaLabelledby: string | null;
    id: string;
    get inputId(): string;
    name: string | null;
    value: string;
    get disabled(): any;
    set disabled(value: any);
    private _disabled;
    get tabIndex(): number;
    set tabIndex(value: number);
    private _tabIndex;
    get checked(): boolean;
    set checked(value: boolean);
    private _checked;
    /**
     * Whether the toggle is indeterminate. This is also known as "mixed" mode and can be used to
     * represent a checkbox with three states, e.g. a checkbox that represents a nested list of
     * checkable items. Note that whenever checkbox is manually clicked, indeterminate is immediately
     * set to false.
     */
    get indeterminate(): boolean;
    set indeterminate(value: boolean);
    private _indeterminate;
    /**
     * Property for manually set loading state.
     */
    loading: boolean;
    readonly change: EventEmitter<KbqToggleChange>;
    /** Event emitted when the toggle's `indeterminate` value changes. */
    readonly indeterminateChange: EventEmitter<boolean>;
    /** @docs-private */
    protected currentCheckState: TransitionCheckState;
    protected clickAction: import("@koobiq/components/checkbox").KbqCheckboxClickAction | null;
    private uniqueId;
    constructor(focusMonitor: FocusMonitor, changeDetectorRef: ChangeDetectorRef);
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    focus(): void;
    getAriaChecked(): KbqCheckedState;
    onChangeEvent(event: Event): void;
    onLabelTextChange(): void;
    onInputClick(event: MouseEvent): void;
    writeValue(value: any): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    setDisabledState(isDisabled: boolean): void;
    private setTransitionCheckState;
    private onTouchedCallback;
    private onChangeCallback;
    private transitionCheckState;
    private emitChangeEvent;
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqToggleComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<KbqToggleComponent, "kbq-toggle", ["kbqToggle"], { "big": { "alias": "big"; "required": false; }; "labelPosition": { "alias": "labelPosition"; "required": false; }; "ariaLabel": { "alias": "aria-label"; "required": false; }; "ariaLabelledby": { "alias": "aria-labelledby"; "required": false; }; "id": { "alias": "id"; "required": false; }; "name": { "alias": "name"; "required": false; }; "value": { "alias": "value"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "checked": { "alias": "checked"; "required": false; }; "indeterminate": { "alias": "indeterminate"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; }, { "change": "change"; "indeterminateChange": "indeterminateChange"; }, never, ["*", "kbq-hint"], false, never>;
    static ngAcceptInputType_tabIndex: unknown;
    static ngAcceptInputType_indeterminate: unknown;
    static ngAcceptInputType_loading: unknown;
}
export {};
