import { ComponentRef, OnDestroy } from '@angular/core';
import { EuiIconSvgComponent } from '@eui/components/eui-icon';
import * as i0 from "@angular/core";
/**
 * @description
 * Metadata for the icon directive used in input elements.
 * This interface defines the properties that can be used to configure the icon,
 * including the icon name, aria label, and whether the icon is clickable.
 */
export interface InputIconMetadata {
    /**
     * @description
     * The icon name to be displayed. This should correspond to an icon in the icon set.
     */
    icon: string;
    /**
     * @description
     * The aria-label for the icon, used for accessibility purposes.
     * This should describe the icon's function or purpose.
     */
    ariaLabel?: string;
    /**
     * @description
     * Indicates whether the icon is clickable. If true, the icon will respond to click events.
     * If false, the icon will not respond to click events and will not have pointer events enabled.
     */
    clickable?: boolean;
    /**
     * @description
     * The color of the icon. This can be used to customize the appearance of the icon.
     * If not specified, the default color will be used.
     */
    colour?: string;
}
/**
 * @description
 * Directive to add an icon to an eui-input-text element, allowing for click events too.
 *
 * @example
 * <input euiInputText euiIcon="eye:filled">
 */
export declare class EuiIconDirective implements OnDestroy {
    euiIcon: import("@angular/core").InputSignal<InputIconMetadata>;
    readonly: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
    iconClick: import("@angular/core").OutputEmitterRef<void>;
    get cssClasses(): string;
    set cssClasses(value: string);
    protected _icon: ComponentRef<EuiIconSvgComponent>;
    private _euiUFlexWrapper;
    private _cssClasses;
    private _elementRef;
    private _viewContainerRef;
    private _renderer;
    private _readonly;
    private listeners;
    private clickable;
    private icon;
    private iconColour;
    private readonly DEFAULT_ICON_COLOUR;
    constructor();
    ngOnDestroy(): void;
    /**
     * create a flex wrapper for the input to hold the icon
     *
     * @private
     */
    private createFlexWrapper;
    /**
     * checks if the parent has a flexWrapper. This is used to avoid creating multiple flexWrappers
     *
     * @private
     */
    private doesParentHasAFlexWrapper;
    /**
     * removes the flexWrapper while keeping the input element intact
     *
     * @private
     */
    private removeFlexWrapper;
    private registerIconClickListener;
    /**
     * creates the icon component
     *
     * @private
     */
    private createIcon;
    /**
     * @description
     * Handles the click event on the icon.
     */
    private onIconClicked;
    /**
     * removes the icon component
     *
     * @private
     */
    private removeIcon;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiIconDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<EuiIconDirective, "input[euiInputText][euiIcon]", never, { "euiIcon": { "alias": "euiIcon"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; }, { "iconClick": "iconClick"; }, never, never, true, never>;
}
//# sourceMappingURL=eui-icon.directive.d.ts.map