import * as i1 from '@eui/components/shared';
import { BaseStatesDirective } from '@eui/components/shared';
import * as i0 from '@angular/core';

/**
 * @description
 * `eui-label` is a versatile textual component used to display labels, sublabels, or inline text associated with other UI elements such as inputs, form fields, or interactive components.
 * It supports multiple visual states, sizes, and variants through host directives and can be rendered as different HTML elements (`<label>`, `<span>`, `<div>`, `<a>`) while preserving consistent EUI styling and behavior.
 * The component is purely structural and semantic. It does not manage layout or interaction by itself.
 *
 * @usageNotes
 * ### Basic Usage
 * ```html
 * <label euiLabel for="username">Username</label>
 * <input euiInputText id="username" />
 * ```
 *
 * ### Required Field
 * ```html
 * <label euiLabel [euiRequired]="true" for="email">Email Address</label>
 * ```
 *
 * ### With Variants
 * ```html
 * <span euiLabel euiDanger>Error message</span>
 * <span euiLabel euiSuccess>Success message</span>
 * ```
 *
 * ### Accessibility
 * - Use `<label>` element with `for` attribute to associate with form controls
 * - Required indicator is visual only; ensure form validation communicates requirement
 * - Color alone should not convey meaning; use additional text or icons
 *
 * ### Notes
 * - Can be used as attribute selector on multiple HTML elements
 * - Supports all BaseStatesDirective variants (primary, secondary, success, info, warning, danger)
 * - Readonly state applies visual styling but does not affect functionality
 */
declare class EuiLabelComponent {
    /**
     * @description
     * Computes and returns the CSS classes for the label component based on its current state.
     * Combines base states, required status, readonly status, and sublabel type.
     *
     * @returns {string} Space-separated string of CSS class names
     */
    get cssClasses(): string;
    /**
     * @description Indicates if the label should be marked as required
     * @default false
     */
    euiRequired: boolean;
    /**
     * @description Indicates if the label should be displayed in readonly state
     * @default false
     */
    euiReadonly: boolean;
    /**
     * @description Indicates if the component should be rendered as a sublabel
     * @default false
     */
    euiSublabel: boolean;
    baseStatesDirective: BaseStatesDirective;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiLabelComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiLabelComponent, "label[euiLabel], span[euiLabel], div[euiLabel], a[euiLabel], eui-label,               label[euiSublabel], span[euiSublabel], div[euiSublabel], a[euiSublabel], eui-sublabel", never, { "euiRequired": { "alias": "euiRequired"; "required": false; }; "euiReadonly": { "alias": "euiReadonly"; "required": false; }; "euiSublabel": { "alias": "euiSublabel"; "required": false; }; }, {}, 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"; "euiSizeL": "euiSizeL"; "euiSizeVariant": "euiSizeVariant"; "euiDisabled": "euiDisabled"; }; outputs: {}; }]>;
    static ngAcceptInputType_euiRequired: unknown;
    static ngAcceptInputType_euiReadonly: unknown;
    static ngAcceptInputType_euiSublabel: unknown;
}

declare const EUI_LABEL: readonly [typeof EuiLabelComponent];

export { EUI_LABEL, EuiLabelComponent };
//# sourceMappingURL=eui-components-eui-label.d.ts.map
