import * as i0 from '@angular/core';
import { AfterContentInit, OnChanges, OnInit, SimpleChanges } from '@angular/core';

/**
 * @description
 * `eui-icon-svg` component for displaying scalable vector graphics from icon sets.
 * Supports multiple icon libraries, customizable sizing, colors, and transformations.
 * Icons can be loaded from configured asset paths or specified URLs.
 * Provides accessibility features including ARIA labels and role attributes.
 * Commonly used throughout the application for consistent iconography in buttons, menus, and UI elements.
 *
 * @usageNotes
 * ### Basic icon
 * ```html
 * <eui-icon-svg icon="check" size="m"></eui-icon-svg>
 * ```
 *
 * ### Icon with color
 * ```html
 * <eui-icon-svg
 *   icon="warning"
 *   fillColor="warning"
 *   size="l"
 *   ariaLabel="Warning indicator">
 * </eui-icon-svg>
 * ```
 *
 * ### Custom icon from URL
 * ```html
 * <eui-icon-svg
 *   [iconUrl]="'/assets/custom-icon.svg'"
 *   size="xl">
 * </eui-icon-svg>
 * ```
 *
 * ### Accessibility
 * - Set `ariaHidden="false"` and provide `ariaLabel` for meaningful icons
 * - Decorative icons should keep `ariaHidden="true"` (default)
 * - Use `focusable="true"` only for interactive icon elements
 *
 * ### Notes
 * - Icon sets are configured via EUI_CONFIG_TOKEN
 * - Use colon notation for specific sets: `icon="check:material"`
 * - Size tokens: 2xs, xs, s, m, l, xl, 2xl, 3xl, 4xl
 * - Apply `transform` for rotations (e.g., "rotate-90", "flip-horizontal")
 */
declare class EuiIconSvgComponent implements AfterContentInit, OnChanges, OnInit {
    ariaRole: string;
    /**
     * Name of the icon to display, optionally including the icon set using 'iconName:setName' format.
     * When format includes colon separator, automatically splits into icon and set properties.
     * Required for icon display unless iconUrl is provided.
     */
    icon: string;
    /**
     * Fill color for the SVG icon using EUI color token names.
     * Applies CSS custom property in format '--eui-c-{fillColor}'.
     * Affects both fill and color properties for comprehensive icon styling.
     */
    fillColor: string;
    /**
     * Icon set library to load the icon from.
     * Determines the source directory for icon SVG files.
     * @default 'eui'
     */
    set: string;
    /**
     * Size variant for the icon using predefined scale or custom value.
     * Predefined sizes: '2xs', 'xs', 's', 'm', 'l', 'xl', '2xl', '3xl', '4xl'.
     * Custom string values can be provided for non-standard sizing.
     * @default 'm'
     */
    size: '2xs' | 'xs' | 's' | 'm' | 'l' | 'xl' | '2xl' | '3xl' | '4xl' | string;
    /**
     * Custom inline CSS styles applied directly to the icon element.
     * Allows for additional styling beyond component properties.
     * @default ''
     */
    style: string;
    /**
     * Direct URL to an SVG icon file, bypassing the icon set resolution.
     * Useful for loading custom or external icons not in configured icon sets.
     */
    iconUrl: string;
    /**
     * CSS transform class modifier applied to the icon.
     * Common values include rotation or flip transformations.
     * Applied as 'eui-icon-svg--{transform}' class.
     * @default ''
     */
    transform: string;
    get cssClasses(): string;
    /**
     * Accessible label for screen readers describing the icon's purpose.
     * Provides semantic meaning when icon conveys information beyond decoration.
     * @default 'Icon'
     */
    ariaLabel: string;
    iconName: string;
    assetsBaseUrl: string;
    iconStyle: string;
    /**
     * Hides the icon from assistive technologies when purely decorative.
     * Set to false when icon conveys meaningful information requiring announcement.
     * @default true
     */
    ariaHidden: boolean;
    /**
     * Makes the icon focusable via keyboard navigation.
     * Enables tab-stop behavior for interactive icon elements.
     * @default false
     */
    focusable: boolean;
    /**
     * Displays a loading animation or state on the icon.
     * Applies 'eui-icon-svg--loading' class for loading-specific styling.
     * @default false
     */
    isLoading: boolean;
    /**
     * Applies styling specific to icons used within input fields.
     * Adjusts positioning and spacing for input-embedded icons.
     * @default false
     */
    isInputIcon: boolean;
    /**
     * Positions the icon at the start (left in LTR, right in RTL) of its container.
     * Commonly used for leading icons in buttons or list items.
     * @default false
     */
    euiStart: boolean;
    /**
     * Positions the icon at the end (right in LTR, left in RTL) of its container.
     * Commonly used for trailing icons in buttons or list items.
     * @default false
     */
    euiEnd: boolean;
    private config;
    ngOnInit(): void;
    ngOnChanges(c: SimpleChanges): void;
    ngAfterContentInit(): void;
    private _setIconAndSet;
    private _setStyle;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiIconSvgComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiIconSvgComponent, "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", never, { "icon": { "alias": "icon"; "required": false; }; "fillColor": { "alias": "fillColor"; "required": false; }; "set": { "alias": "set"; "required": false; }; "size": { "alias": "size"; "required": false; }; "style": { "alias": "style"; "required": false; }; "iconUrl": { "alias": "iconUrl"; "required": false; }; "transform": { "alias": "transform"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaHidden": { "alias": "ariaHidden"; "required": false; }; "focusable": { "alias": "focusable"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; "isInputIcon": { "alias": "isInputIcon"; "required": false; }; "euiStart": { "alias": "euiStart"; "required": false; }; "euiEnd": { "alias": "euiEnd"; "required": false; }; }, {}, never, ["*"], true, never>;
    static ngAcceptInputType_ariaHidden: unknown;
    static ngAcceptInputType_focusable: unknown;
    static ngAcceptInputType_isLoading: unknown;
    static ngAcceptInputType_isInputIcon: unknown;
    static ngAcceptInputType_euiStart: unknown;
    static ngAcceptInputType_euiEnd: unknown;
}

declare const EUI_ICON: readonly [typeof EuiIconSvgComponent];

export { EUI_ICON, EuiIconSvgComponent };
//# sourceMappingURL=eui-components-eui-icon.d.ts.map
