import * as _angular_core from '@angular/core';
import { ElementRef } from '@angular/core';
import { EuiGrowlMessage } from '@eui/core';

/**
 * Notification component that displays temporary or persistent messages to users.
 * Supports multiple message types (success, info, warning, error) with automatic dismissal or sticky behavior.
 * Messages can be positioned in different screen locations and include customizable lifecycle durations.
 * Implements ARIA live regions for accessibility, announcing messages to screen readers.
 * Commonly used for user feedback, system notifications, and operation status updates.
 *
 * @usageNotes
 * ### Basic growl notification
 * ```typescript
 * messages: EuiGrowlMessage[] = [];
 *
 * showSuccess() {
 *   this.messages.push({
 *     severity: 'success',
 *     summary: 'Success',
 *     detail: 'Operation completed'
 *   });
 * }
 * ```
 * ```html
 * <eui-growl [value]="messages" position="top-right"></eui-growl>
 * ```
 *
 * ### Sticky notification
 * ```typescript
 * this.messages.push({
 *   severity: 'info',
 *   summary: 'Info',
 *   detail: 'This message stays until dismissed',
 *   sticky: true
 * });
 * ```
 *
 * ### Accessibility
 * - Uses ARIA live regions (aria-live="polite") for screen reader announcements
 * - Messages are announced without interrupting user workflow
 * - Close buttons are keyboard accessible
 *
 * ### Notes
 * - Position options: top-right, top-left, bottom-right, bottom-left, top-center, bottom-center
 * - Non-sticky messages auto-dismiss after `life` milliseconds (default: 3000)
 * - Use `closeAllSticky` to show a clear-all button for multiple sticky messages
 */
declare class EuiGrowlComponent {
    el: ElementRef<any>;
    titleId: string;
    contentId: string;
    /**
     * Data attribute used for end-to-end testing identification.
     * @default 'eui-growl'
     */
    readonly e2eAttr: _angular_core.InputSignal<string>;
    /**
     * ARIA live region politeness level controlling how screen readers announce messages.
     * 'polite' waits for user to finish current activity, 'assertive' interrupts immediately, 'off' disables announcements.
     * @default 'polite'
     */
    readonly ariaLive: _angular_core.InputSignal<"off" | "polite" | "assertive">;
    /**
     * Prevents automatic dismissal of messages, requiring manual user interaction to close.
     * When true, messages remain visible until explicitly closed by the user.
     * @default false
     */
    readonly sticky: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Duration in milliseconds before non-sticky messages automatically dismiss.
     * Individual messages can override this with their own life property.
     * @default 3000
     */
    readonly life: _angular_core.InputSignal<number>;
    /**
     * Array of message objects to display in the growl notification area.
     * Each message should conform to the EuiGrowlMessage interface with properties like severity, summary, and detail.
     * Messages are automatically managed with lifecycle timeouts based on sticky and life properties.
     * @default []
     */
    readonly value: _angular_core.ModelSignal<EuiGrowlMessage[]>;
    /**
     * Enables display of a close-all button when multiple sticky messages are present.
     * Provides users with a quick way to dismiss all persistent notifications at once.
     * @default false
     */
    readonly closeAllSticky: _angular_core.InputSignal<boolean>;
    /**
     * Screen position where growl messages appear.
     * Common values include 'top-right', 'top-left', 'bottom-right', 'bottom-left', 'top-center', 'bottom-center'.
     * Affects the CSS positioning of the notification container.
     */
    readonly position: _angular_core.InputSignal<string>;
    /**
     * Optional callback function executed when a growl message is clicked.
     * Allows custom behavior to be triggered on user interaction with notifications.
     * @default null
     */
    readonly callback: _angular_core.InputSignal<() => void>;
    /**
     * Emitted when a growl message is clicked by the user.
     * No payload is provided.
     * Triggers in addition to the callback function if one is defined.
     */
    readonly growlClick: _angular_core.OutputEmitterRef<void>;
    /**
     * Emitted when a growl message is closed, either automatically or by user action.
     * No payload is provided.
     * Useful for tracking message dismissals or triggering cleanup operations.
     */
    readonly growlClose: _angular_core.OutputEmitterRef<void>;
    protected cssClasses: _angular_core.Signal<string>;
    private previousMessages;
    constructor();
    /**
     * @param msg The text message to appear in the container
     */
    remove(msg: EuiGrowlMessage): void;
    /**
     * Removes all growl messages from the stack
     */
    removeAll(): void;
    onClick(): void;
    /**
     * check whether sticky growls are greater than two
     */
    isGrowlMoreThanTwo(): boolean;
    /**
     * Removes all growl messages from the stack
     *
     * @param value
     */
    private createRemovalTimeout;
    /**
     * Finds UxMessage index of the array otherwise returns -1
     *
     * @param msg UxMessage
     */
    private findMessageIndex;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<EuiGrowlComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<EuiGrowlComponent, "eui-growl", never, { "e2eAttr": { "alias": "e2eAttr"; "required": false; "isSignal": true; }; "ariaLive": { "alias": "ariaLive"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "life": { "alias": "life"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "closeAllSticky": { "alias": "closeAllSticky"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "callback": { "alias": "callback"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "growlClick": "growlClick"; "growlClose": "growlClose"; }, never, never, true, never>;
}

declare const EUI_GROWL: readonly [typeof EuiGrowlComponent];

export { EUI_GROWL, EuiGrowlComponent };
//# sourceMappingURL=eui-components-eui-growl.d.ts.map
