import { AnimationEvent } from '@angular/animations';
import { Overlay, OverlayContainer } from '@angular/cdk/overlay';
import { ComponentRef, EmbeddedViewRef, InjectionToken, Injector, NgZone, OnDestroy, TemplateRef } from '@angular/core';
import { BehaviorSubject } from 'rxjs';
import { KbqToastComponent } from './toast.component';
import { KbqToastConfig, KbqToastData } from './toast.type';
import * as i0 from "@angular/core";
export declare const KBQ_TOAST_FACTORY: InjectionToken<typeof KbqToastComponent>;
export declare class KbqToastService<T extends KbqToastComponent = KbqToastComponent> implements OnDestroy {
    private overlay;
    private injector;
    private overlayContainer;
    private ngZone;
    private toastFactory;
    private toastConfig;
    get toasts(): ComponentRef<T>[];
    get templates(): EmbeddedViewRef<T>[];
    readonly read: BehaviorSubject<KbqToastData | null>;
    readonly hovered: BehaviorSubject<boolean>;
    readonly focused: BehaviorSubject<boolean>;
    readonly animation: BehaviorSubject<AnimationEvent | null>;
    timer: import("rxjs").Observable<number>;
    private containerInstance;
    private overlayRef;
    private portal;
    private timerSubscription;
    private toastsDict;
    private templatesDict;
    constructor(overlay: Overlay, injector: Injector, overlayContainer: OverlayContainer, ngZone: NgZone, toastFactory: any, toastConfig: KbqToastConfig);
    ngOnDestroy(): void;
    show(data: KbqToastData, duration?: number, onTop?: boolean): {
        ref: ComponentRef<T>;
        id: number;
    };
    showTemplate(data: KbqToastData, template: TemplateRef<any>, duration?: number, onTop?: boolean): {
        ref: EmbeddedViewRef<T>;
        id: number;
    };
    hide(id: number): void;
    hideTemplate(id: number): void;
    private detachOverlay;
    private processToasts;
    private updateTTLAfterDelete;
    private addRemoveTimer;
    private prepareContainer;
    private toTop;
    private createOverlay;
    private getPositionStrategy;
    private getTopCenter;
    private getTopLeft;
    private getTopRight;
    private getBottomCenter;
    private getBottomLeft;
    private getBottomRight;
    private getCenter;
    private getGlobalOverlayPosition;
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqToastService<any>, [null, null, null, null, null, { optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<KbqToastService<any>>;
}
