import { Injector } from '@angular/core';
import { Observable } from 'rxjs';
import { TccSingleton } from '../../models/tcc-singleton.model';
import { OnDestroy } from '@angular/core';
import { Router } from '@angular/router';
import { TccManageSingletonsService } from '../tcc-manage-singletons/tcc-manage-singletons.service';
import { Overlay } from '@angular/cdk/overlay';
import { TccSnackbarEventType, TccSnackbarOptions } from '../../models/snackbar.model';
export declare class SnackbarRef {
    private event$;
    emit(event: TccSnackbarEventType): void;
    afterClosed(): Observable<TccSnackbarEventType>;
}
export interface TccSnackbarItem {
    id: number;
    config: TccSnackbarOptions;
    ref: SnackbarRef;
    count?: number;
}
export declare class TccSnackBarService implements TccSingleton, OnDestroy {
    private router;
    private manageSingletons;
    private overlay;
    private injector;
    constructor(router: Router, manageSingletons: TccManageSingletonsService, overlay: Overlay, injector: Injector);
    private overlayRef?;
    private routerSubscription;
    private _snackbars$;
    snackbars: import("@angular/core").Signal<TccSnackbarItem[]>;
    private counter;
    private timeouts;
    ngOnDestroy(): void;
    init(): void;
    reset(): void;
    /**
     * @description
     * opens Snackbar from TccSnackbarComponent
     * @param message
     * @param header
     * @param durationinseconds
     * defines the time in Seconds that the Snackbar stays open (0=infinite)
     * @param snackType
     * Possible Types:
     * 1 or AlertType.Success, 2 or AlertType.Error, 3 or AlertType.Info, 4 or AlertType.Warning
     * @param secondbuttoncaption
     * Snackbar gets a second Button with this String as Buttontext
     * @param noButton
     * Snackbar gets no button
     */
    openSnackBar(options: TccSnackbarOptions): SnackbarRef;
    dismiss(id: number, reason?: TccSnackbarEventType): void;
    private createContainer;
}
