import { Observable } from 'rxjs';
import { NotificationMessage, NotificationConfig, NotificationPosition } from './snackbar.models';
import * as i0 from "@angular/core";
export declare class NotificationService {
    private messages;
    private messagesSubject;
    private config;
    constructor();
    /**
     * Get the observable of active notification messages
     */
    getMessages(): Observable<NotificationMessage[]>;
    /**
     * Configure notification settings
     */
    setConfig(config: Partial<NotificationConfig>): void;
    /**
     * Get current notification configuration
     */
    getConfig(): NotificationConfig;
    /**
     * Get current notification position
     */
    getPosition(): NotificationPosition;
    /**
     * Push a new notification message
     */
    pushMessage(message: Omit<NotificationMessage, 'id'>): void;
    /**
     * Remove a specific message
     */
    removeMessage(id: string): void;
    /**
     * Clear all messages
     */
    clearAll(): void;
    /**
     * Helper methods for common notification types
     */
    success(title: string, description: string, duration?: number): void;
    error(title: string, description: string, duration?: number): void;
    warning(title: string, description: string, duration?: number): void;
    info(title: string, description: string, duration?: number): void;
    neutral(title: string, description: string, duration?: number): void;
    /**
     * Custom template notification methods for common types
     */
    successTemplate(templateRef: any, templateContext: any, duration?: number): void;
    errorTemplate(templateRef: any, templateContext: any, duration?: number): void;
    warningTemplate(templateRef: any, templateContext: any, duration?: number): void;
    infoTemplate(templateRef: any, templateContext: any, duration?: number): void;
    neutralTemplate(templateRef: any, templateContext: any, duration?: number): void;
    private generateId;
    static ɵfac: i0.ɵɵFactoryDeclaration<NotificationService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<NotificationService>;
}
//# sourceMappingURL=notification.service.d.ts.map