import * as i0 from '@angular/core';
import { EventEmitter } from '@angular/core';
import { ControlValueAccessor, FormControl } from '@angular/forms';
import * as i1 from '@eui/components/shared';
import { BaseStatesDirective } from '@eui/components/shared';
/**
* @description
* Slide toggle component used to represent a boolean state.
* It can be used as a standalone toggle or integrated with Angular Reactive Forms.
* Supports icons for ON/OFF states and visual variants via EUI base state directives.
*
* @usageNotes
* ### Basic Usage
* ```html
*
*
*
*
*
*
*
*
* ```
*
* ### Accessibility
* - Provide meaningful aria-label describing the toggle's purpose
* - Toggle is keyboard accessible (Space/Enter to toggle)
* - Disabled state is properly communicated to screen readers
*
* ### Notes
* - Supports semantic color variants (euiPrimary, euiSuccess, euiDanger, etc.)
* - Size variants (euiSizeS, euiSizeM, euiSizeL, euiSizeXL) control toggle dimensions
* - Icons are optional and can be customized for ON/OFF states
*/
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;
/**
* attribute attached to the aria-label of the input field
* @default 'eUI slide toggle'
*/
ariaLabel: 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 'secondary'
*/
iconSvgFillColorOn: string;
/**
* Fill color for the OFF state icon
* @default 'secondary'
*/
iconSvgFillColorOff: string;
/**
* Current checked state of the toggle
* @default false
*/
isChecked: boolean;
/**
* Whether the toggle is disabled
* @default false
*/
set disabled(value: boolean);
get disabled(): boolean;
/**
* Event emitted when toggle state changes
* @emits boolean - The new toggle state
*/
slideToggleChange: EventEmitter;
/** Form control for the toggle when used in reactive forms */
checkboxControl: FormControl;
private _disabled;
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;
static ɵcmp: i0.ɵɵComponentDeclaration;
static ngAcceptInputType_isChecked: unknown;
static ngAcceptInputType_disabled: unknown;
}
declare const EUI_SLIDE_TOGGLE: readonly [typeof EuiSlideToggleComponent];
export { EUI_SLIDE_TOGGLE, EuiSlideToggleComponent };
//# sourceMappingURL=eui-components-eui-slide-toggle.d.ts.map