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

/**
 * @description
 * A component that represents an individual item within an input group add-on.
 * Can be used either as an attribute selector on a div or as a custom element.
 *
 * @usageNotes
 * ### Basic Usage
 * ```html
 * <div euiInputGroupAddOn>
 *   <div euiInputGroupAddOnItem>https://</div>
 *   <input euiInputText placeholder="example.com" />
 * </div>
 * ```
 *
 * ### Accessibility
 * - Decorative items should have `aria-hidden="true"`
 * - Meaningful items should be properly labeled for screen readers
 *
 * ### Notes
 * - Typically contains text, icons, or buttons
 * - Must be used within `euiInputGroupAddOn` container
 */
declare class EuiInputGroupAddOnItemComponent {
    /**
     * @description
     * Input property for setting the data-e2e attribute value.
     * Used for end-to-end testing purposes.
     *
     * @default 'eui-input-group-addon-item'
     */
    e2eAttr: i0.InputSignal<string>;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiInputGroupAddOnItemComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiInputGroupAddOnItemComponent, "div[euiInputGroupAddOnItem], eui-input-group-addon-item", never, { "e2eAttr": { "alias": "e2eAttr"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
}

/**
 * @description
 * A component that serves as a container for input group add-on items.
 * Can be used either as an attribute selector on a div or as a custom element.
 *
 * @usageNotes
 * ### Basic Usage
 * ```html
 * <div euiInputGroupAddOn>
 *   <div euiInputGroupAddOnItem>€</div>
 *   <input euiInputText type="number" />
 * </div>
 * ```
 *
 * ### Accessibility
 * - Add-on items should have appropriate ARIA labels when they convey meaning
 * - Ensure add-on content is announced to screen readers if it provides context
 *
 * ### Notes
 * - Used to group prefix/suffix elements with input controls
 * - Provides consistent styling for input decorations
 */
declare class EuiInputGroupAddOnComponent {
    /**
     * @description
     * Input property for setting the data-e2e attribute value.
     * Used for end-to-end testing purposes.
     *
     * @default 'eui-input-group-addon'
     */
    e2eAttr: i0.InputSignal<string>;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiInputGroupAddOnComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiInputGroupAddOnComponent, "div[euiInputGroupAddOn], eui-input-group-addon", never, { "e2eAttr": { "alias": "e2eAttr"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
}

/**
 * @description
 * Container component used to group input-related elements such as labels, inputs, and validation messages.
 * `euiInputGroup` provides a consistent layout and styling for form controls and is required to ensure proper visual and functional integration of EUI input components.
 * This component can only be used as an attribute selector on a `div` element.
 *
 * @usageNotes
 * ### Basic Usage
 * ```html
 * <div euiInputGroup>
 *   <label euiLabel for="email">Email</label>
 *   <input euiInputText id="email" type="email" />
 * </div>
 * ```
 *
 * ### With Validation Message
 * ```html
 * <div euiInputGroup>
 *   <label euiLabel for="password">Password</label>
 *   <input euiInputText id="password" type="password" [isInvalid]="hasError" />
 *   <span euiLabel euiDanger *ngIf="hasError">Password is required</span>
 * </div>
 * ```
 *
 * ### Accessibility
 * - Groups related form elements for better screen reader navigation
 * - Maintains proper label-input associations
 * - Ensures validation messages are announced to assistive technologies
 *
 * ### Notes
 * - Must be used as attribute on `div` element only
 * - Provides consistent spacing and layout for form controls
 * - Supports size variants through `euiSizeS` input
 */
declare class EuiInputGroupComponent {
    /**
     * @description
     * Input property for setting the data-e2e attribute value.
     * Used for end-to-end testing purposes.
     *
     * @default 'eui-input-group'
     */
    e2eAttr: i0.InputSignal<string>;
    /**
     * @description
     * Getter that returns the CSS class for the component.
     * Bound to the host element's class attribute.
     *
     * @returns {string} The CSS class name
     */
    get cssClasses(): string;
    baseStatesDirective: BaseStatesDirective;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiInputGroupComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiInputGroupComponent, "div[euiInputGroup]", never, { "e2eAttr": { "alias": "e2eAttr"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof i1.BaseStatesDirective; inputs: { "euiSizeS": "euiSizeS"; "euiSizeVariant": "euiSizeVariant"; }; outputs: {}; }]>;
}

declare const EUI_INPUT_GROUP: readonly [typeof EuiInputGroupComponent, typeof EuiInputGroupAddOnComponent, typeof EuiInputGroupAddOnItemComponent];

export { EUI_INPUT_GROUP, EuiInputGroupAddOnComponent, EuiInputGroupAddOnItemComponent, EuiInputGroupComponent };
//# sourceMappingURL=eui-components-eui-input-group.d.ts.map
