import { AfterContentInit, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
import * as i0 from "@angular/core";
/**
 * Component that provides a toggleable icon button with accessibility support.
 * Functions as a switch control that can be toggled between on/off states,
 * displaying different icons based on the current state.
 *
 * This component handles keyboard navigation, focus management, and proper
 * ARIA attributes for accessibility compliance.
 */
export declare class EuiIconToggleComponent implements AfterContentInit, OnChanges {
    get cssClasses(): string;
    role: string;
    /**
     * Keyboard shortcut key.
     * @default 'i'
     */
    keyboardAccessKey: string;
    /**
     * Whether the toggle is in the checked/on state.
     * Bound to aria-checked attribute for accessibility.
     * @default false
     */
    isChecked: boolean;
    /**
     * Whether the toggle is read-only (cannot be interacted with).
     * When true, tabindex is set to -1 and clicking will not change state.
     * @default undefined
     */
    isReadOnly: boolean;
    /**
     * Data attribute for e2e testing.
     * @default 'eui-icon-toggle'
     */
    e2eAttr: string;
    /**
     * Unique identifier for the component.
     * @default 'eui-icon-toggle-{uniqueId}'
     */
    id: string;
    /**
     * Tab order value for keyboard navigation.
     * @default '0'
     */
    tabindex: string;
    /**
     * Accessible label for screen readers.
     * @default 'Toggle icon'
     */
    ariaLabel: string;
    /**
     * Size of the icon (s, m, l, xl).
     * @default 'm'
     */
    iconSvgSize: string;
    /**
     * Icon to display when toggle is in the ON state.
     */
    iconSvgNameOn: string;
    /**
     * Icon to display when toggle is in the OFF state.
     */
    iconSvgNameOff: string;
    /**
     * Color of the icon when toggle is in the ON state.
     * @default 'accent'
     */
    iconSvgFillColorOn: string;
    /**
     * Color of the icon when toggle is in the OFF state.
     * @default 'neutral'
     */
    iconSvgFillColorOff: string;
    /**
     * Event emitted when the toggle state changes.
     * Emits the new state (true = checked, false = unchecked).
     */
    toggle: EventEmitter<boolean>;
    protected iconSvgName: string;
    protected iconSvgFillColor: string;
    /**
     * @deprecated Is not used anymore
     */
    protected iconSvgSet: string;
    /**
     * Handles changes to input properties.
     * Updates the tabindex when the component becomes read-only.
     *
     * @param {SimpleChanges} changes - Object containing changed properties
     */
    ngOnChanges(changes: SimpleChanges): void;
    /**
     * Initializes the component after content has been set.
     * Sets the appropriate icon based on the current toggle state.
     * Sets the aria-label if none was provided.
     */
    ngAfterContentInit(): void;
    /**
     * Host listener that handles click events on the component.
     * Triggers the toggle action if the component is not read-only.
     */
    protected onClick(): void;
    /**
     * Host listener that handles keyboard events.
     * Triggers the toggle action on Enter or Space key press.
     *
     * @param {KeyboardEvent} event - The keyboard event
     */
    protected onKeydown(event: KeyboardEvent): void;
    private _toggle;
    private _setIconClass;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiIconToggleComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiIconToggleComponent, "eui-icon-toggle", never, { "keyboardAccessKey": { "alias": "keyboardAccessKey"; "required": false; }; "isChecked": { "alias": "isChecked"; "required": false; }; "isReadOnly": { "alias": "isReadOnly"; "required": false; }; "e2eAttr": { "alias": "e2eAttr"; "required": false; }; "id": { "alias": "id"; "required": false; }; "tabindex": { "alias": "tabindex"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "iconSvgSize": { "alias": "iconSvgSize"; "required": false; }; "iconSvgNameOn": { "alias": "iconSvgNameOn"; "required": false; }; "iconSvgNameOff": { "alias": "iconSvgNameOff"; "required": false; }; "iconSvgFillColorOn": { "alias": "iconSvgFillColorOn"; "required": false; }; "iconSvgFillColorOff": { "alias": "iconSvgFillColorOff"; "required": false; }; }, { "toggle": "toggle"; }, never, never, true, never>;
    static ngAcceptInputType_isChecked: unknown;
    static ngAcceptInputType_isReadOnly: unknown;
}
//# sourceMappingURL=eui-icon-toggle.component.d.ts.map