import * as _angular_core from '@angular/core';
import { ElementRef } from '@angular/core';
import * as i1 from '@eui/components/shared';
import { BaseStatesDirective } from '@eui/components/shared';
import { NumberInput, BooleanInput } from '@angular/cdk/coercion';

/**
 * @description
 * A badge component that can display text, numbers, or icons with various states and styles.
 * Supports content truncation, empty states, and icon-only modes.
 *
 * @usageNotes
 * #### Basic badge
 * ```html
 * <eui-badge>99</eui-badge>
 * ```
 *
 * #### Badge with semantic variants
 * ```html
 * <eui-badge euiSuccess>Active</eui-badge>
 * <eui-badge euiDanger>Error</eui-badge>
 * ```
 *
 * #### Badge with icon
 * ```html
 * <eui-icon-svg icon="eui-email">
 *   <eui-badge euiDanger euiSizeS>9</eui-badge>
 * </eui-icon-svg>
 * ```
 *
 * #### Badge with button
 * ```html
 * <button euiButton euiPrimary>
 *   Primary
 *   <span euiBadge>99</span>
 * </button>
 * ```
 *
 * #### Badge with truncation
 * ```html
 * <eui-badge [maxCharCount]="2" charReplacement="99+">150</eui-badge>
 * ```
 *
 * #### Icon-only badge (dot indicator)
 * ```html
 * <eui-badge [euiIconBadge]="true" euiDanger></eui-badge>
 * ```
 *
 * ### Accessibility
 * - Uses role="status" for screen reader announcements
 * - aria-label provides context (defaults to "badge")
 * - Content is automatically announced by screen readers
 * - Truncated content shows replacement text to all users
 * - Empty badges are visually indicated with special styling
 *
 * ### Notes
 * - Size variants: euiSizeS, euiSizeM (default)
 * - Color variants: euiPrimary, euiSecondary, euiSuccess, euiInfo, euiWarning, euiDanger
 * - maxCharCount truncates content when exceeded, showing charReplacement (default: "99+")
 * - euiIconBadge creates a small dot indicator without text
 * - euiDottedBadge applies dotted styling variant
 * - Empty badges (no content) automatically receive special styling
 * - colorPalette accepts custom color palette names for extended theming
 * - euiOutline adds border outline styling
 * - Can be used as element (eui-badge) or attribute (div[euiBadge], span[euiBadge])
 */
declare class EuiBadgeComponent {
    /** @description Data attribute for e2e testing */
    e2eAttr: _angular_core.InputSignal<string>;
    /** @description ARIA label for accessibility */
    ariaLabel: _angular_core.InputSignal<string>;
    /**
     * Maximum number of characters to display before truncating.
     * When content exceeds this limit, it will be replaced with charReplacement value.
     * Useful for displaying large numbers in a compact format (e.g., "99+" for values over 99).
     */
    maxCharCount: _angular_core.InputSignalWithTransform<number, NumberInput>;
    /**
     * String to display when content is truncated due to maxCharCount.
     */
    charReplacement: _angular_core.InputSignal<string>;
    /**
     * Whether the badge contains only an icon (displays as a small dot indicator).
     * When true, no text content is shown, creating a minimal status indicator.
     * @default false
     */
    euiIconBadge: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
    /**
     * Whether to display the badge with dotted styling variant.
     * Applies alternative visual treatment to the badge.
     * @default false
     */
    euiDottedBadge: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
    /**
     * Extra color palette to be used on the badge.
     * Accepts custom color palette names for extended theming beyond standard variants.
     */
    colorPalette: _angular_core.InputSignal<string>;
    content: _angular_core.Signal<ElementRef<any>>;
    protected hasContentUpdated: _angular_core.WritableSignal<boolean>;
    protected updatedContent: _angular_core.WritableSignal<string>;
    protected baseStatesDirective: BaseStatesDirective;
    private hasContent;
    /**
     * @description
     * Computes and returns the CSS classes for the badge based on its current state
     *
     * @returns {string} Space-separated string of CSS class names
     */
    protected cssClasses: _angular_core.Signal<string>;
    constructor();
    /**
     * @description
     * Handles content changes and triggers content checking
     */
    onContentChanged(): void;
    /**
     * @description
     * Checks if content exceeds maxCharCount and updates content if necessary
     * @private
     */
    private _checkContent;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<EuiBadgeComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<EuiBadgeComponent, "div[euiBadge], span[euiBadge], eui-badge", never, { "e2eAttr": { "alias": "e2eAttr"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "maxCharCount": { "alias": "maxCharCount"; "required": false; "isSignal": true; }; "charReplacement": { "alias": "charReplacement"; "required": false; "isSignal": true; }; "euiIconBadge": { "alias": "euiIconBadge"; "required": false; "isSignal": true; }; "euiDottedBadge": { "alias": "euiDottedBadge"; "required": false; "isSignal": true; }; "colorPalette": { "alias": "colorPalette"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof i1.BaseStatesDirective; inputs: { "euiPrimary": "euiPrimary"; "euiSecondary": "euiSecondary"; "euiSuccess": "euiSuccess"; "euiInfo": "euiInfo"; "euiWarning": "euiWarning"; "euiDanger": "euiDanger"; "euiVariant": "euiVariant"; "euiSizeS": "euiSizeS"; "euiSizeM": "euiSizeM"; "euiSizeVariant": "euiSizeVariant"; "euiOutline": "euiOutline"; }; outputs: {}; }]>;
}

declare const EUI_BADGE: readonly [typeof EuiBadgeComponent];

export { EUI_BADGE, EuiBadgeComponent };
//# sourceMappingURL=eui-components-eui-badge.d.ts.map
