import * as i0 from '@angular/core';
import { OnChanges, OnInit, ElementRef } from '@angular/core';
import { CssClassBuilder } from '@fundamental-ngx/cdk/utils';
import { IconFont } from '@fundamental-ngx/core/icon';

declare class MessagePageActionsComponent {
    /** @hidden */
    fdMessagePageActionsClass: boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<MessagePageActionsComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<MessagePageActionsComponent, "fd-message-page-actions", never, {}, {}, never, ["*"], true, never>;
}

declare class MessagePageMoreComponent {
    /** @hidden */
    fdMessagePageMoreClass: boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<MessagePageMoreComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<MessagePageMoreComponent, "fd-message-page-more", never, {}, {}, never, ["*"], true, never>;
}

declare class MessagePageSubtitleComponent {
    /** @hidden */
    fdMessagePageTitleClass: boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<MessagePageSubtitleComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<MessagePageSubtitleComponent, "fd-message-page-subtitle", never, {}, {}, never, ["*"], true, never>;
}

declare class MessagePageTitleComponent {
    /** @hidden */
    fdMessagePageTitleClass: boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<MessagePageTitleComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<MessagePageTitleComponent, "fd-message-page-title", never, {}, {}, never, ["*"], true, never>;
}

type MessagePageType = '' | 'filter' | 'search' | 'no-items' | 'error';
declare class MessagePageComponent implements OnChanges, OnInit, CssClassBuilder {
    readonly elementRef: ElementRef;
    /** User's custom class */
    class: string;
    /**
     * The type of the Message Page.
     * Options include: filter, search, no-items, error and default.
     * Leave empty for default.
     */
    type: MessagePageType;
    /**
     * Whether the Message Page has an icon.
     * Set to true by default.
     * It's recommended to always show an icon with the Message Page.
     */
    hasIcon: boolean;
    /** Glyph font family */
    glyphFont: IconFont;
    /**
     * The icon of the Message Page.
     * The default icon is .sap-icon--documents.
     */
    set glyph(messagePageGlyph: string);
    /**
     * Getter method for the glyph property
     */
    get glyph(): string;
    /**
     * @hidden
     * The icon of the Message Page.
     */
    private _glyph;
    /** @hidden */
    constructor(elementRef: ElementRef);
    /** @hidden
     * CssClassBuilder interface implementation
     * function is responsible for order which css classes are applied
     */
    buildComponentCssClass(): string[];
    /** @hidden */
    ngOnChanges(): void;
    /** @hidden */
    ngOnInit(): void;
    /**
     * @hidden
     * Determine the icon based on the Message Page type
     * If no type is specified, the default icon is 'documents'
     */
    private _getMessagePageIcon;
    static ɵfac: i0.ɵɵFactoryDeclaration<MessagePageComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<MessagePageComponent, "fd-message-page", never, { "class": { "alias": "class"; "required": false; }; "type": { "alias": "type"; "required": false; }; "hasIcon": { "alias": "hasIcon"; "required": false; }; "glyphFont": { "alias": "glyphFont"; "required": false; }; "glyph": { "alias": "glyph"; "required": false; }; }, {}, never, ["fd-message-page-title", "fd-message-page-subtitle", "fd-message-page-actions", "fd-message-page-more", "*"], true, never>;
}

/**
 * @deprecated
 * Use direct imports of components and directives.
 */
declare class MessagePageModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<MessagePageModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<MessagePageModule, never, [typeof MessagePageComponent, typeof MessagePageActionsComponent, typeof MessagePageMoreComponent, typeof MessagePageTitleComponent, typeof MessagePageSubtitleComponent], [typeof MessagePageComponent, typeof MessagePageActionsComponent, typeof MessagePageMoreComponent, typeof MessagePageTitleComponent, typeof MessagePageSubtitleComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<MessagePageModule>;
}

export { MessagePageActionsComponent, MessagePageComponent, MessagePageModule, MessagePageMoreComponent, MessagePageSubtitleComponent, MessagePageTitleComponent };
export type { MessagePageType };
