import { EventEmitter } from '@angular/core';
import { ControlValueAccessor, FormControl } from '@angular/forms';
import { BaseStatesDirective } from '@eui/components/shared';
import * as i0 from "@angular/core";
import * as i1 from "@eui/components/shared";
/**
 * @description
 * Slide toggle component that can be used as a standalone toggle or within reactive forms.
 * Supports custom icons for on/off states and various size/variant options through BaseStatesDirective.
 *
 * @implements {ControlValueAccessor}
 */
export declare class EuiSlideToggleComponent implements ControlValueAccessor {
    /** CSS classes applied to the host element */
    get cssClasses(): string;
    /**
     * Unique identifier for the toggle
     * @default Generated unique ID with 'eui-slide-toggle-' prefix
     */
    id: string;
    /**
     * Name of the icon to display when toggle is ON
     * @default undefined
     */
    iconSvgNameOn: string;
    /**
     * Name of the icon to display when toggle is OFF
     * @default undefined
     */
    iconSvgNameOff: string;
    /**
     * Fill color for the ON state icon
     * @default 'neutral'
     */
    iconSvgFillColorOn: string;
    /**
     * Fill color for the OFF state icon
     * @default 'neutral'
     */
    iconSvgFillColorOff: string;
    /**
     * Current checked state of the toggle
     * @default false
     */
    isChecked: boolean;
    /**
     * Whether the toggle is disabled
     * @default false
     */
    disabled: boolean;
    /** Form control for the toggle when used in reactive forms */
    checkboxControl: FormControl<any>;
    /**
     * Event emitted when toggle state changes
     * @emits boolean - The new toggle state
     */
    slideToggleChange: EventEmitter<boolean>;
    private cd;
    private control;
    protected baseStatesDirective: BaseStatesDirective;
    constructor();
    /**
     * Toggles the current state if not disabled
     * Emits the new state and notifies form control
     */
    toggle(): void;
    /**
     * Implements ControlValueAccessor
     * Updates the toggle's checked state
     */
    writeValue(value: boolean): void;
    /**
     * Implements ControlValueAccessor
     * Updates the toggle's disabled state
     */
    setDisabledState(isDisabled: boolean): void;
    /**
     * Handles focus out event
     * Notifies form control of touch event
     */
    onFocusOut(): void;
    /**
     * Implements ControlValueAccessor
     * Registers change handler
     * @todo Improve type definition or make generic
     */
    registerOnChange(fn: any): void;
    /**
     * Implements ControlValueAccessor
     * Registers touch handler
     * @todo Improve type definition or make generic
     */
    registerOnTouched(fn: any): void;
    private onChange;
    private onTouch;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiSlideToggleComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiSlideToggleComponent, "eui-slide-toggle", never, { "id": { "alias": "id"; "required": false; }; "iconSvgNameOn": { "alias": "iconSvgNameOn"; "required": false; }; "iconSvgNameOff": { "alias": "iconSvgNameOff"; "required": false; }; "iconSvgFillColorOn": { "alias": "iconSvgFillColorOn"; "required": false; }; "iconSvgFillColorOff": { "alias": "iconSvgFillColorOff"; "required": false; }; "isChecked": { "alias": "isChecked"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "slideToggleChange": "slideToggleChange"; }, never, never, true, [{ directive: typeof i1.BaseStatesDirective; inputs: { "euiPrimary": "euiPrimary"; "euiSecondary": "euiSecondary"; "euiInfo": "euiInfo"; "euiWarning": "euiWarning"; "euiSuccess": "euiSuccess"; "euiDanger": "euiDanger"; "euiAccent": "euiAccent"; "euiVariant": "euiVariant"; "euiSizeS": "euiSizeS"; "euiSizeM": "euiSizeM"; "euiSizeL": "euiSizeL"; "euiSizeXL": "euiSizeXL"; "euiSizeVariant": "euiSizeVariant"; }; outputs: {}; }]>;
    static ngAcceptInputType_isChecked: unknown;
    static ngAcceptInputType_disabled: unknown;
}
//# sourceMappingURL=eui-slide-toggle.component.d.ts.map