import * as _angular_material_snack_bar from '@angular/material/snack-bar';
import { MatSnackBarRef, MatSnackBarConfig } from '@angular/material/snack-bar';
import * as i0 from '@angular/core';

interface ToastData {
    type: 'success' | 'info' | 'warning' | 'error';
    panelClass?: string;
    title?: string;
    message: string;
    icon?: string;
    duration: number;
    showClose?: boolean;
    progressBar?: boolean;
}
declare class Toast {
    snackRef: MatSnackBarRef<Toast>;
    data: ToastData;
    dismiss(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<Toast, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<Toast, "lib-toast", never, {}, {}, never, never, true, never>;
}

type ToastParameter = Partial<Pick<MatSnackBarConfig<ToastData>, 'direction' | 'horizontalPosition' | 'verticalPosition' | 'duration'>> & {
    showClose?: boolean;
} & {
    progressBar?: boolean;
};
declare class ToastService {
    private snackBar;
    private readonly commonConfig;
    private readonly defaultConfig;
    private readonly sucessConfig;
    private readonly warningConfig;
    private readonly errorConfig;
    show(type: ToastData['type'], message: string, title?: string, opts?: ToastParameter): _angular_material_snack_bar.MatSnackBarRef<Toast>;
    info(message: string, title?: string, opts?: ToastParameter): _angular_material_snack_bar.MatSnackBarRef<Toast>;
    success(message: string, title?: string, opts?: ToastParameter): _angular_material_snack_bar.MatSnackBarRef<Toast>;
    warning(message: string, title?: string, opts?: ToastParameter): _angular_material_snack_bar.MatSnackBarRef<Toast>;
    error(message: string, title?: string, opts?: ToastParameter): _angular_material_snack_bar.MatSnackBarRef<Toast>;
    static ɵfac: i0.ɵɵFactoryDeclaration<ToastService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ToastService>;
}

export { ToastService };
