import { ComponentRef, TemplateRef, Type } from '@angular/core';
import { DynamicComponentService, RtlService } from '@fundamental-ngx/cdk/utils';
import { NotificationConfig } from '../notification-utils/notification-config';
import { NotificationContainer } from '../notification-utils/notification-container';
import { NotificationRef } from '../notification-utils/notification-ref';
import { NotificationComponent } from '../notification/notification.component';
import * as i0 from "@angular/core";
export declare class NotificationService {
    private _dynamicComponentService;
    private _document;
    private _rtlService;
    /** @hidden */
    notifications: {
        notificationComponent: ComponentRef<NotificationComponent>;
        notificationConfig: Readonly<NotificationConfig>;
    }[];
    /** @hidden */
    containerRef: ComponentRef<NotificationContainer> | null;
    /**
     * @hidden
     * Element that was focused before the notification was opened. Being used to restore focus upon close.
     */
    private _elementFocusedBeforeNotificationWasOpened?;
    /**
     * @hidden
     */
    constructor(_dynamicComponentService: DynamicComponentService, _document: Document, _rtlService: RtlService);
    /**
     * Opens a notification component with a content of type TemplateRef or Component Type
     * @param content Content of the notification component.
     * @param notificationConfig Configuration of the notification component.
     */
    open(content: TemplateRef<any> | Type<any>, notificationConfig?: NotificationConfig): NotificationRef;
    /** Method to remove all of notifications from this service instance */
    destroyAll(): void;
    /** Method that informs if there is any notification opened in this service instance */
    isAnyOpened(): boolean;
    /** @hidden Method that destroys the Notification component */
    private _destroyNotificationComponent;
    /** @hidden attempts to focus previously selected element */
    private _restoreFocus;
    static ɵfac: i0.ɵɵFactoryDeclaration<NotificationService, [null, null, { optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<NotificationService>;
}
