import { SwitchButton } from './../index';
import { Animation, ClickMode, Orientation, SwitchButtonSwitchMode } from './../index';
import { AfterViewInit, ElementRef, OnInit, OnChanges, OnDestroy, SimpleChanges, EventEmitter } from '@angular/core';
import { BaseElement } from './smart.element';
import { ControlValueAccessor } from '@angular/forms';
import * as i0 from "@angular/core";
export { Animation, ClickMode, Orientation, SwitchButtonSwitchMode, ElementRenderMode } from './../index';
export { Smart } from './smart.element';
export { SwitchButton } from './../index';
export declare class SwitchButtonComponent extends BaseElement implements OnInit, AfterViewInit, OnDestroy, OnChanges, ControlValueAccessor {
    constructor(ref: ElementRef<SwitchButton>);
    private eventHandlers;
    nativeElement: SwitchButton;
    /** @description Creates the component on demand.
     * @param properties An optional object of properties, which will be added to the template binded ones.
     */
    createComponent(properties?: {}): any;
    /**
    * @description
    * The registered callback function called when a change event occurs on the form elements.
    */
    _onChange: (value: any) => void;
    /**
    * @description
    * The registered callback function called when a blur event occurs on the form elements.
    */
    _onTouched: () => any;
    /** @description Sets or gets the animation mode. Animation is disabled when the property is set to 'none' */
    get animation(): Animation | string;
    set animation(value: Animation | string);
    /** @description Sets the click mode of the switch button. This property is active only when switchMode is 'click'. press - the state of the switch is changed on mousedownrelease - the state of the switch is changed on mouseuppressAndRelease - the state of the switch is changed on mousedown and reverted to the original on mouseup. */
    get clickMode(): ClickMode | string;
    set clickMode(value: ClickMode | string);
    /** @description Sets or gets the check state. */
    get checked(): boolean;
    set checked(value: boolean);
    /** @description Enables or disables the ratio button. */
    get disabled(): boolean;
    set disabled(value: boolean);
    /** @description Sets the text representation of checked=false state. */
    get falseContent(): string;
    set falseContent(value: string);
    /** @description Sets custom template about false state. */
    get falseTemplate(): any;
    set falseTemplate(value: any);
    /** @description Sets or gets indeterminate state of the switch. */
    get indeterminate(): boolean;
    set indeterminate(value: boolean);
    /** @description Sets the direction of switchin. If is true - positions of the switch states are changed. */
    get inverted(): boolean;
    set inverted(value: boolean);
    /** @description Sets or gets the unlockKey which unlocks the product. */
    get unlockKey(): string;
    set unlockKey(value: string);
    /** @description Sets or gets the language. Used in conjunction with the property messages.  */
    get locale(): string;
    set locale(value: string);
    /** @description Callback, related to localization module.  */
    get localizeFormatFunction(): any;
    set localizeFormatFunction(value: any);
    /** @description Sets an object with string values, related to the different states of passwords strength. */
    get messages(): any;
    set messages(value: any);
    /** @description Sets or gets the widget's name. */
    get name(): string;
    set name(value: string);
    /** @description Sets the orientation of the switch */
    get orientation(): Orientation | string;
    set orientation(value: Orientation | string);
    /** @description If the custom element is readonly, it cannot be interacted with. */
    get readonly(): boolean;
    set readonly(value: boolean);
    /** @description Sets the text representation of checked=true state. */
    get trueContent(): string;
    set trueContent(value: string);
    /** @description Sets custom template about true state. */
    get trueTemplate(): string;
    set trueTemplate(value: string);
    /** @description Sets the switchMode of the element. default - dragging the thumb or clicking inside the track can change the state of the element. click - clicking inside the track changes the state of the element. drag - dragging the thumb changes the state of the element.none - the state of the element can only be changed via the API */
    get switchMode(): SwitchButtonSwitchMode | string;
    set switchMode(value: SwitchButtonSwitchMode | string);
    /** @description Determines the theme. Theme defines the look of the element */
    get theme(): string;
    set theme(value: string);
    /** @description If is set to true, the element cannot be focused. */
    get unfocusable(): boolean;
    set unfocusable(value: boolean);
    /** @description Sets or gets the widget's value. */
    get value(): string;
    set value(value: string);
    /** @description This event is triggered when the widget is checked/unchecked.
    *  @param event. The custom event. 	Custom event was created with: event.detail(	value, 	oldValue, 	changeType)
    *   value - A boolean value indicating the new state of the button ( checked or not ).
    *   oldValue - A boolean value indicating the previous state of the button ( checked or not ).
    *   changeType - A string flag indicating whether the change event was triggered via API or an event.
    */
    onChange: EventEmitter<CustomEvent>;
    /** @description This event is triggered when the widget is checked.
    *  @param event. The custom event. 	Custom event was created with: event.detail(	changeType)
    *   changeType - A string flag indicating whether the change event was triggered via API or an event.
    */
    onCheckValue: EventEmitter<CustomEvent>;
    /** @description This event is triggered when the widget is unchecked.
    *  @param event. The custom event. 	Custom event was created with: event.detail(	changeType)
    *   changeType - A string flag indicating whether the change event was triggered via API or an event.
    */
    onUncheckValue: EventEmitter<CustomEvent>;
    get isRendered(): boolean;
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    _initialChange: boolean;
    get ngValue(): any;
    set ngValue(value: any);
    writeValue(value: any): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    ngOnChanges(changes: SimpleChanges): void;
    /** @description Add event listeners. */
    private listen;
    /** @description Remove event listeners. */
    private unlisten;
    static ɵfac: i0.ɵɵFactoryDeclaration<SwitchButtonComponent, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<SwitchButtonComponent, "smart-switch-button, [smart-switch-button]", ["smart-switch-button"], { "animation": "animation"; "clickMode": "clickMode"; "checked": "checked"; "disabled": "disabled"; "falseContent": "falseContent"; "falseTemplate": "falseTemplate"; "indeterminate": "indeterminate"; "inverted": "inverted"; "unlockKey": "unlockKey"; "locale": "locale"; "localizeFormatFunction": "localizeFormatFunction"; "messages": "messages"; "name": "name"; "orientation": "orientation"; "readonly": "readonly"; "trueContent": "trueContent"; "trueTemplate": "trueTemplate"; "switchMode": "switchMode"; "theme": "theme"; "unfocusable": "unfocusable"; "value": "value"; }, { "onChange": "onChange"; "onCheckValue": "onCheckValue"; "onUncheckValue": "onUncheckValue"; }, never>;
}
