import * as i0 from '@angular/core';
import { OnInit, OnDestroy, ElementRef, EventEmitter } from '@angular/core';
import * as i1 from '@fundamental-ngx/cdk/forms';
import { CvaDirective } from '@fundamental-ngx/cdk/forms';
import { Nullable } from '@fundamental-ngx/cdk/utils';
import { ContentDensityObserver } from '@fundamental-ngx/core/content-density';
import { FormItemControl } from '@fundamental-ngx/core/form';

/**
 * The Switch component is used to activate or deactivate an element.
 * It uses a visual metaphor to inform the user of the state of the switch.
 */
declare class SwitchComponent implements OnInit, OnDestroy, FormItemControl {
    readonly _contentDensityObserver: ContentDensityObserver;
    /** @hidden */
    inputElement: ElementRef<HTMLInputElement>;
    /** Optional text for the active state of the switch. */
    activeText: string;
    /** Optional text for the inactive state of the switch. */
    inactiveText: string;
    /** Id for the switch component. If omitted, a unique one is generated. */
    id: string;
    /** If it is mandatory field */
    required: boolean;
    /** Whether the switch is checked. */
    set checked(value: boolean);
    get checked(): boolean;
    /** Whether the switch is semantic */
    semantic: boolean;
    /** aria-label attribute of the inner input element. */
    ariaLabel: Nullable<string>;
    /** aria-labelledby attribute of the inner input element. */
    ariaLabelledBy: Nullable<string>;
    /**
     * Event fired when the state of the switch changes.
     * *$event* can be used to retrieve the new state of the switch.
     */
    readonly checkedChange: EventEmitter<boolean>;
    /** @hidden */
    _switchLabelWrapperEl: ElementRef;
    /** @hidden */
    readonly _cva: CvaDirective<boolean>;
    /** @hidden */
    private _subscriptions;
    /** @hidden */
    private readonly _cvaControl;
    /** @hidden */
    constructor(_contentDensityObserver: ContentDensityObserver);
    /** @hidden */
    ngOnInit(): void;
    /** @hidden */
    ngOnDestroy(): void;
    /** Set focus on the input element. */
    focus(): void;
    /** Get the id of the inner input element of the switch. */
    get innerInputId(): string;
    /** Get the id of the semantic label element of the switch. */
    get _semanticLabelId(): string;
    /** Checked property of the switch. */
    set isChecked(value: boolean);
    get isChecked(): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<SwitchComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SwitchComponent, "fd-switch", never, { "activeText": { "alias": "activeText"; "required": false; }; "inactiveText": { "alias": "inactiveText"; "required": false; }; "id": { "alias": "id"; "required": false; }; "required": { "alias": "required"; "required": false; }; "checked": { "alias": "checked"; "required": false; }; "semantic": { "alias": "semantic"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; }; }, { "checkedChange": "checkedChange"; }, never, never, true, [{ directive: typeof i1.CvaDirective; inputs: { "state": "state"; "stateMessage": "stateMessage"; "disabled": "disabled"; "name": "name"; "readonly": "readonly"; "ariaLabelledBy": "ariaLabelledBy"; "ariaLabel": "ariaLabel"; }; outputs: {}; }]>;
}

/**
 * @deprecated
 * Use direct imports of components and directives.
 */
declare class SwitchModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<SwitchModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<SwitchModule, never, [typeof SwitchComponent], [typeof SwitchComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<SwitchModule>;
}

export { SwitchComponent, SwitchModule };
