import * as _angular_core from '@angular/core';
import { OnDestroy } from '@angular/core';
/**
* Displays a user message with an icon and a text. Comes in diferent flavours, sizes and styles.
*
* - Level: success, error, warning and info (default)
* - Size: s and m (default)
* - Kind: default (default) and ghost (transparent background)
*
* Basic usage:
*
* ```html
*
* ```
*
* Formatted content:
*
* ```html
* Congrats! You made it.
* ````
*
* ### Import
*
* ```typescript
* import { MessageComponent } from '@talenra/ngx-base/message';
* ```
*
* ../../#/message
*/
declare class MessageComponent implements OnDestroy {
/**
* Unique identifier provided by the parent component. Used to track the message in environments with multiple
* Message instances.
*
* If you rely on a single/static Message instance or if you do not allow users do dismiss messages (using the
* `dismissible` input property) you might not need an identifier.
*/
identifier: _angular_core.InputSignal;
/**
* Defines the message level: info (default), error, success or warning.
*
* ```html
*
* ```
*/
level: _angular_core.InputSignal;
/**
* Size of the message displayed.
*
* ```html
*
* ```
*/
size: _angular_core.InputSignal;
/**
* Kind of the message displayed. Determinates the style of the Message.
*
* ```html
*
* ```
*/
kind: _angular_core.InputSignal;
/**
* Message text displayed to the user.
*
* ```html
*
* ```
*/
text: _angular_core.InputSignal;
/**
* Optional description displayed in accordion. Description is hidden by default and can by expanded by the user. It
* is typically used to give the user extra information. Use description to keep the message text concise without
* compromising content.
*
* ```html
*
* ```
*/
description: _angular_core.InputSignal;
/**
* Determines whether Message can be dismissed by the user. If set, the close button is shown.
*
* ```html
*
* ```
*/
dismissible: _angular_core.InputSignalWithTransform;
/**
* Event emitted when Message is removed. Removal is triggered if the user dismisses the message, after the fade-out
* animation is completed.
*
* Returns a reference to the emitting Message instance and its identifier (if provided).
*
* ```html
*
* ```
*
* @see {@link MessageRemove}
*/
removeMessage: _angular_core.OutputEmitterRef;
/**
* Determines whether Message is about to be removed. Triggers fade-out animation if set true.
*/
protected fadeOut: boolean;
/**
* Determines whether Message is removed. Sets the template to `display: none`.
*/
protected removed: boolean;
/**
* Determines whether Message is expanded (description visible).
*/
protected expanded: boolean;
/**
* Set classname based on input properties.
*/
private get hostClass();
/** Return type-based icon name */
protected mappedIcon: _angular_core.Signal;
private removeTimeout;
/** Remove the message */
protected remove(): void;
/** Toggle description */
protected toggle(): void;
/**
* Clear timeout on destroy. Prevents "Error: NG0953: Unexpected emit for destroyed `OutputRef`. The owning
* directive/component is destroyed."
*
* @internal
*/
ngOnDestroy(): void;
static ɵfac: _angular_core.ɵɵFactoryDeclaration;
static ɵcmp: _angular_core.ɵɵComponentDeclaration;
}
/**
* Values accepted by `Message`'s `level` property.
*
* ```html
*
* ```
*
* ### Import
*
* ```typescript
* import { MessageLevel } from '@talenra/ngx-base/message';
* ```
*
* @see {@link MessageComponent}
*/
declare const MessageLevel: {
readonly Info: "info";
readonly Error: "error";
readonly Success: "success";
readonly Warning: "warning";
};
/**
* Type of values accepted by the`Message`'s `level` property.
*
* ### Import
*
* ```typescript
* import { TMessageLevel } from '@talenra/ngx-base/message';
* ```
*
* @see {@link MessageComponent}
*/
type TMessageLevel = (typeof MessageLevel)[keyof typeof MessageLevel];
/**
* Values accepted by `Message`'s `size` property.
*
* ```html
*
* ```
*
* ### Import
*
* ```typescript
* import { MessageSize } from '@talenra/ngx-base/message';
* ```
*
* @see {@link MessageComponent}
*/
declare const MessageSize: {
readonly S: "s";
readonly M: "m";
};
/**
* Type of values accepted by the`Message`'s `size` property.
*
* ### Import
*
* ```typescript
* import { TMessageSize } from '@talenra/ngx-base/message';
* ```
*
* @see {@link MessageComponent}
*/
type TMessageSize = (typeof MessageSize)[keyof typeof MessageSize];
/**
* Values accepted by `Message`'s `kind` property.
*
* ```html
*
* ```
*
* ### Import
*
* ```typescript
* import { MessageKind } from '@talenra/ngx-base/message';
* ```
*
* @see {@link MessageComponent}
*/
declare const MessageKind: {
readonly Default: "default";
readonly Ghost: "ghost";
};
/**
* Type of values accepted by the`Message`'s `kind` property.
*
* ### Import
*
* ```typescript
* import { TMessageKind } from '@talenra/ngx-base/message';
* ```
*
* @see {@link MessageComponent}
*/
type TMessageKind = (typeof MessageKind)[keyof typeof MessageKind];
/**
* Event emitted when Message is removed.
*/
interface MessageRemove {
/** Reference to the emitting Message component */
source: MessageComponent;
/** Identifier of the emitting Message component (if provided) */
identifier: string;
}
export { MessageComponent, MessageKind, MessageLevel, MessageSize };
export type { MessageRemove, TMessageKind, TMessageLevel, TMessageSize };