import { Type } from '@angular/core';
import { Observable } from 'rxjs';
import { MessageStripAlertPosition } from './message-strip-alert.position';
import { MessageStripAlertRef } from './message-strip-alert.ref';
import { OpenMessageStripAlertConfig } from './open-message-strip-alert.config';
import * as i0 from "@angular/core";
/**
 * Service that is responsible for opening and closing message strip alerts.
 * This should be only created once in entire application.
 * Service is responsible for creating and managing the overlays for the
 * message strip alerts. This also manages the footer components for any
 * given position.
 */
export declare class MessageStripAlertService {
    /** @hidden */
    footerComponents$: Observable<Partial<Record<MessageStripAlertPosition, Type<any>>>>;
    /** @hidden */
    private injector;
    /** @hidden */
    private readonly _overlay;
    /** @hidden */
    private viewportSize$;
    /** @hidden */
    private readonly _messageStripAlertService;
    /** @hidden */
    private _messageAlerts$;
    /** @hidden */
    private _overlayRefs;
    /** @hidden */
    private _messageStripAlertContainerFooters$;
    /** @hidden */
    constructor();
    /**
     * Set the footer component for a given position.
     */
    setFooterComponent(position: MessageStripAlertPosition, component: Type<any>): void;
    /**
     * Open a message strip alert with given configuration
     */
    open<ComponentType = unknown>(c: OpenMessageStripAlertConfig<ComponentType>): MessageStripAlertRef;
    /** @hidden */
    private getMessageStripAlertRef;
    /** @hidden */
    private listenToItemsChanges;
    /** @hidden */
    private syncExistingOverlays;
    /** @hidden */
    private getOverlayRef;
    /** @hidden */
    private createOverlay;
    static ɵfac: i0.ɵɵFactoryDeclaration<MessageStripAlertService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<MessageStripAlertService>;
}
