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

/**
 * @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 Indicates if the label should be marked as required
     * @default false
     */
    readonly euiRequired: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * @description Indicates if the label should be displayed in readonly state
     * @default false
     */
    readonly euiReadonly: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * @description Indicates if the component should be rendered as a sublabel
     * @default false
     */
    readonly euiSublabel: _angular_core.InputSignalWithTransform<boolean, unknown>;
    baseStatesDirective: BaseStatesDirective;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<EuiLabelComponent, never>;
    static ɵcmp: _angular_core.ɵɵ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; "isSignal": true; }; "euiReadonly": { "alias": "euiReadonly"; "required": false; "isSignal": true; }; "euiSublabel": { "alias": "euiSublabel"; "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"; "euiSizeL": "euiSizeL"; "euiSizeVariant": "euiSizeVariant"; "euiDisabled": "euiDisabled"; }; outputs: {}; }]>;
}

declare const EUI_LABEL: readonly [typeof EuiLabelComponent];

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