import { BooleanInput } from '@angular/cdk/coercion';
import { ElementRef, EventEmitter, OnChanges, OnInit } from '@angular/core';
import { CssClassBuilder, Nullable } from '@fundamental-ngx/cdk/utils';
import { MessageStripIconDirective } from './message-strip-icon.directive';
import { MessageStripIndicationColor } from './message-strip-indication-color';
import { MessageStripType } from './message-strip-type';
import * as i0 from "@angular/core";
/**
 * The component that represents a message-strip. It can only be used inline.
 */
export declare class MessageStripComponent implements OnInit, OnChanges, CssClassBuilder {
    readonly elementRef: ElementRef;
    /** User's custom classes */
    class: string;
    /** Whether the message strip is dismissible. */
    dismissible: BooleanInput;
    /** Title for dismiss button */
    dismissBtnTitle: string;
    /** The default message strip does not have an icon.
     * The other types (warning, success, information and error) have icons by default.
     * To remove the icon set the property to true.
     */
    noIcon: BooleanInput;
    /** The type of the message strip.
     * Can be one of *warning*, *success*, *information*, *error* or null.
     */
    type: MessageStripType;
    /** Id for the message-strip component. If omitted, a unique one is generated. */
    id: string;
    /** Id of the element that labels the message-strip. */
    ariaLabelledBy: Nullable<string>;
    /** Aria label for the message-strip component element. */
    ariaLabel: Nullable<string>;
    /** Width of the message-strip. */
    width: string;
    /** Minimum width of the message-strip. */
    minWidth: string;
    /** Margin bottom of the message-strip. */
    marginBottom: string;
    /** indication color of the message-strip. */
    indicationColor: MessageStripIndicationColor;
    /** Event fired when the message-strip is dismissed. */
    onDismiss: EventEmitter<void>;
    /** Custom icon component */
    icon: MessageStripIconDirective;
    /** @hidden */
    constructor(elementRef: ElementRef);
    /** @hidden
     * CssClassBuilder interface implementation
     * function must return single string
     * function is responsible for order which css classes are applied
     */
    buildComponentCssClass(): string[];
    /** @hidden */
    ngOnInit(): void;
    /** @hidden */
    ngOnChanges(): void;
    /** Whether icon container should be shown */
    get shouldShowIcon(): boolean;
    /** @hidden */
    get typeSpecificIconName(): string;
    /**
     * Dismisses the message-strip.
     */
    dismiss(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<MessageStripComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<MessageStripComponent, "fd-message-strip", never, { "class": { "alias": "class"; "required": false; }; "dismissible": { "alias": "dismissible"; "required": false; }; "dismissBtnTitle": { "alias": "dismissBtnTitle"; "required": false; }; "noIcon": { "alias": "noIcon"; "required": false; }; "type": { "alias": "type"; "required": false; }; "id": { "alias": "id"; "required": false; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "width": { "alias": "width"; "required": false; }; "minWidth": { "alias": "minWidth"; "required": false; }; "marginBottom": { "alias": "marginBottom"; "required": false; }; "indicationColor": { "alias": "indicationColor"; "required": false; }; }, { "onDismiss": "onDismiss"; }, ["icon"], ["*"], true, never>;
    static ngAcceptInputType_dismissible: unknown;
    static ngAcceptInputType_noIcon: unknown;
}
