import { Subject } from 'rxjs';
import * as i0 from '@angular/core';
import { EventEmitter } from '@angular/core';
import * as i9 from '@angular/common';

interface Toast {
    closing?: boolean;
    toasterId?: number;
    type: SpecificToastrType;
    toastHeading: string;
    toastText: string;
    timeout?: number;
    position?: SpecificPosition;
    closeIcon?: boolean;
    autoClose?: boolean;
    border?: 'rounded' | 'semi-rounded' | 'none';
    progressbar?: boolean;
    preventDuplicate?: boolean;
    background?: string;
    color?: string;
}
type SpecificPosition = 'top-right' | 'top-left' | 'top-center' | 'bottom-center';
type SpecificToastrType = 'success' | 'info' | 'error' | 'warning';

declare class BmxToastService {
    constructor();
    toastData: Subject<Toast>;
    defaultData: Toast;
    toastrId: number;
    generate(data: Toast): void;
    fire(data: Toast): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<BmxToastService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<BmxToastService>;
}

declare class BmxToastComponent {
    static ɵfac: i0.ɵɵFactoryDeclaration<BmxToastComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<BmxToastComponent, "lib-bmx-toast", never, {}, {}, never, never, false, never>;
}

declare class ToastComponent {
    private _toastService;
    constructor(_toastService: BmxToastService);
    toastList: Toast[];
    toastListTopRight: Toast[];
    toastListTopLeft: Toast[];
    toastListTopCenter: Toast[];
    toastListBottomCenter: Toast[];
    deleteToaster(positionArray: Toast[], toastObj: Toast, delay: number): void;
    deleteIndivudalToaster(i: number, obj: Toast, toasterArr: Toast[]): void;
    sorting(arr: Toast[]): Toast[];
    ngOnInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ToastComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ToastComponent, "lib-toast", never, {}, {}, never, never, false, never>;
}

declare class InfoComponent {
    dataInfo: Toast;
    closeSucToaster: EventEmitter<any>;
    close(): void;
    addClasstoggle: boolean;
    closeToastFalse: boolean;
    ngOnInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<InfoComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<InfoComponent, "lib-info", never, { "dataInfo": { "alias": "dataInfo"; "required": false; }; }, { "closeSucToaster": "closeSucToaster"; }, never, never, false, never>;
}

declare class WarningComponent {
    dataWarning: Toast;
    closeSucToaster: EventEmitter<any>;
    close(): void;
    addClasstoggle: boolean;
    closeToastFalse: boolean;
    ngOnInit(): void;
    closeToaster(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<WarningComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<WarningComponent, "lib-warning", never, { "dataWarning": { "alias": "dataWarning"; "required": false; }; }, { "closeSucToaster": "closeSucToaster"; }, never, never, false, never>;
}

declare class ErrorComponent {
    dataError: Toast;
    closeSucToaster: EventEmitter<any>;
    closeToastFalse: boolean;
    close(): void;
    ngOnInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ErrorComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ErrorComponent, "lib-error", never, { "dataError": { "alias": "dataError"; "required": false; }; }, { "closeSucToaster": "closeSucToaster"; }, never, never, false, never>;
}

declare class SuccessComponent {
    dataSuccess: Toast;
    closeSucToaster: EventEmitter<any>;
    close(): void;
    closeToastFalse: boolean;
    ngOnInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SuccessComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SuccessComponent, "lib-success", never, { "dataSuccess": { "alias": "dataSuccess"; "required": false; }; }, { "closeSucToaster": "closeSucToaster"; }, never, never, false, never>;
}

declare class ProgressbarComponent {
    dataProgressBar: Toast;
    ngOnInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ProgressbarComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ProgressbarComponent, "lib-progressbar", never, { "dataProgressBar": { "alias": "dataProgressBar"; "required": false; }; }, {}, never, never, false, never>;
}

declare class ToasterTextComponent {
    toasterText: Toast;
    static ɵfac: i0.ɵɵFactoryDeclaration<ToasterTextComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ToasterTextComponent, "lib-toaster-text", never, { "toasterText": { "alias": "toasterText"; "required": false; }; }, {}, never, never, false, never>;
}

declare class CloseButtonIconComponent {
    static ɵfac: i0.ɵɵFactoryDeclaration<CloseButtonIconComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<CloseButtonIconComponent, "lib-close-button-icon", never, {}, {}, never, never, false, never>;
}

declare class ToastModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<ToastModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<ToastModule, [typeof ToastComponent, typeof InfoComponent, typeof WarningComponent, typeof ErrorComponent, typeof SuccessComponent, typeof ProgressbarComponent, typeof ToasterTextComponent, typeof CloseButtonIconComponent], [typeof i9.CommonModule], [typeof ToastComponent, typeof InfoComponent, typeof WarningComponent, typeof ErrorComponent, typeof SuccessComponent, typeof ProgressbarComponent, typeof ToasterTextComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<ToastModule>;
}

declare class BmxToastModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<BmxToastModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<BmxToastModule, [typeof BmxToastComponent], [typeof ToastModule], [typeof BmxToastComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<BmxToastModule>;
}

declare class ToastService {
    constructor();
    static ɵfac: i0.ɵɵFactoryDeclaration<ToastService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ToastService>;
}

export { BmxToastComponent, BmxToastModule, BmxToastService, ErrorComponent, InfoComponent, ProgressbarComponent, SuccessComponent, ToastComponent, ToastModule, ToastService, ToasterTextComponent, WarningComponent };
export type { SpecificPosition, SpecificToastrType, Toast };
