import * as i0 from '@angular/core';
import { AfterContentChecked, OnChanges, OnDestroy, OnInit, ElementRef, ChangeDetectorRef, SimpleChanges } from '@angular/core';
import { SafeHtml, DomSanitizer } from '@angular/platform-browser';
import { RequireOnlyOne, CssClassBuilder, Nullable } from '@fundamental-ngx/cdk/utils';

declare class IllustratedMessageActionsComponent {
    static ɵfac: i0.ɵɵFactoryDeclaration<IllustratedMessageActionsComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<IllustratedMessageActionsComponent, "fd-illustrated-message-actions", never, {}, {}, never, ["*"], true, never>;
}

declare class IllustratedMessageFigcaptionComponent {
    static ɵfac: i0.ɵɵFactoryDeclaration<IllustratedMessageFigcaptionComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<IllustratedMessageFigcaptionComponent, "[fd-illustrated-message-figcaption]", never, {}, {}, never, ["[fd-illustrated-message-title]", "[fd-illustrated-message-text]"], true, never>;
}

declare class IllustratedMessageTextDirective {
    /** @hidden */
    fdIllustratedMessageTextClass: boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<IllustratedMessageTextDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<IllustratedMessageTextDirective, "[fd-illustrated-message-text]", never, {}, {}, never, never, true, never>;
}

declare class IllustratedMessageTitleDirective {
    /** @hidden */
    fdIllustratedMessageTitleClass: boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<IllustratedMessageTitleDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<IllustratedMessageTitleDirective, "[fd-illustrated-message-title]", never, {}, {}, never, never, true, never>;
}

interface SvgItemConfig {
    url: string;
    id: string;
    file: string;
}
interface SvgConfig {
    large?: RequireOnlyOne<SvgItemConfig, 'url' | 'file'>;
    medium?: RequireOnlyOne<SvgItemConfig, 'url' | 'file'>;
    small?: RequireOnlyOne<SvgItemConfig, 'url' | 'file'>;
    xsmall?: RequireOnlyOne<SvgItemConfig, 'url' | 'file'>;
    scene?: RequireOnlyOne<SvgItemConfig, 'url' | 'file'>;
    dialog?: RequireOnlyOne<SvgItemConfig, 'url' | 'file'>;
    spot?: RequireOnlyOne<SvgItemConfig, 'url' | 'file'>;
    dot?: RequireOnlyOne<SvgItemConfig, 'url' | 'file'>;
}
type IllustratedMessageType = 'large' | 'medium' | 'small' | 'xsmall' | 'base' | 'scene' | 'dialog' | 'spot' | 'dot';
declare enum IllustratedMessageTypes {
    LARGE = "large",
    MEDIUM = "medium",
    SMALL = "small",
    EXTRA_SMALL = "xsmall",
    BASE = "base",
    SCENE = "scene",
    DIALOG = "dialog",
    SPOT = "spot",
    DOT = "dot"
}
declare class IllustratedMessageComponent implements AfterContentChecked, OnChanges, OnDestroy, OnInit, CssClassBuilder {
    readonly elementRef: ElementRef;
    private _cdRef;
    private _sanitizer;
    type: IllustratedMessageType;
    svgConfig: SvgConfig;
    svgAriaLabel: Nullable<string>;
    noSvg: boolean;
    id: string;
    class: string;
    _href: string;
    _isSmallScreen: boolean;
    _inlineSvg: SafeHtml | undefined;
    _tempType: IllustratedMessageType;
    private _subscriptions;
    constructor(elementRef: ElementRef, _cdRef: ChangeDetectorRef, _sanitizer: DomSanitizer);
    buildComponentCssClass(): string[];
    ngOnChanges(changes: SimpleChanges): void;
    ngOnInit(): void;
    ngAfterContentChecked(): void;
    ngOnDestroy(): void;
    private _constructHref;
    private _determineIllustratedMessageType;
    private _normalizeType;
    private _normalizeSvgConfig;
    private _getHrefByType;
    static ɵfac: i0.ɵɵFactoryDeclaration<IllustratedMessageComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<IllustratedMessageComponent, "[fd-illustrated-message]", never, { "type": { "alias": "type"; "required": false; }; "svgConfig": { "alias": "svgConfig"; "required": false; }; "svgAriaLabel": { "alias": "svgAriaLabel"; "required": false; }; "noSvg": { "alias": "noSvg"; "required": false; }; "id": { "alias": "id"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, ["[fd-illustrated-message-figcaption]", "fd-illustrated-message-actions"], true, never>;
}

/**
 * @deprecated
 * Use direct imports of components and directives.
 */
declare class IllustratedMessageModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<IllustratedMessageModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<IllustratedMessageModule, never, [typeof IllustratedMessageComponent, typeof IllustratedMessageActionsComponent, typeof IllustratedMessageFigcaptionComponent, typeof IllustratedMessageTextDirective, typeof IllustratedMessageTitleDirective], [typeof IllustratedMessageComponent, typeof IllustratedMessageActionsComponent, typeof IllustratedMessageFigcaptionComponent, typeof IllustratedMessageTextDirective, typeof IllustratedMessageTitleDirective]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<IllustratedMessageModule>;
}

export { IllustratedMessageActionsComponent, IllustratedMessageComponent, IllustratedMessageFigcaptionComponent, IllustratedMessageModule, IllustratedMessageTextDirective, IllustratedMessageTitleDirective, IllustratedMessageTypes };
export type { IllustratedMessageType, SvgConfig, SvgItemConfig };
