import { MatSnackBar } from '@angular/material/snack-bar';
import { AlertType } from '../../models/alert.model';
import { Observable, PartialObserver } 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';
export declare namespace TccSnackbarServiceNamespace {
    enum Position {
        bottomCenter = 0,
        bottomLeft = 1,
        bottomRight = 2,
        topCenter = 3,
        topLeft = 4,
        topRight = 5
    }
    interface Options {
        message: string;
        header?: string;
        durationinseconds?: number;
        snackType?: AlertType;
        position?: Position;
        secondbuttoncaption?: string;
        observer?: PartialObserver<any>;
    }
}
export declare class TccSnackBarService implements TccSingleton, OnDestroy {
    private snackBar;
    private router;
    private manageSingletons;
    constructor(snackBar: MatSnackBar, router: Router, manageSingletons: TccManageSingletonsService);
    private routerSubscription;
    private _durationsinseconds;
    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 Position
     * Snackbar Position
     * @param secondbuttoncaption
     * Snackbar gets a second Button with this String as Buttontext
     */
    openSnackBar(options: TccSnackbarServiceNamespace.Options): Observable<any>;
    closeSnackbar(): void;
}
