import { Subject } from 'rxjs';
import { IToastNotification, IAddToastNotification, IToastComponentConfig } from './toast-notifications.model';
import * as i0 from "@angular/core";
/**Service to manage all instances of the notification component internally.  */
export declare class ToastNotificationsInternalService {
    protected readonly _toastNotifications: import("@angular/core").WritableSignal<{
        [id: string]: IToastNotification;
    }>;
    readonly toastNotifications: import("@angular/core").Signal<IToastNotification[]>;
    protected readonly _config: import("@angular/core").WritableSignal<IToastComponentConfig>;
    readonly config: import("@angular/core").Signal<IToastComponentConfig>;
    updateConfig(val: Partial<IToastComponentConfig>): void;
    generateUUID: () => string;
    /**
     * Adds a new notification item
     * @param item
     * @returns
     */
    addToastNotification: (item: IAddToastNotification) => {
        id: string;
        update: (update: Partial<IAddToastNotification>) => void;
        close: () => void;
        loader: {
            play: () => void;
            stop: () => void;
        };
        closed: Subject<{
            manuallyClosed: boolean;
        }>;
    };
    formatToast: (item: IToastNotification) => IToastNotification;
    handleDuration: (item: Partial<IToastNotification>) => void;
    /**Update the details of a notification */
    updateToastNotification: (id: string, item: Partial<IAddToastNotification>) => void;
    /**Toggle the expansion state of a notification */
    toggleToastNotification: (id: string, expand?: boolean) => void;
    /**Close a notification */
    closeToastNotification: (id: string, manualDismissal: boolean) => void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ToastNotificationsInternalService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ToastNotificationsInternalService>;
}
