import { OnInit, ElementRef, AfterViewInit } from '@angular/core';
import { NotificationItem } from '../../models/notification-item.model';
import { TabItem } from '../../models/tab-item.model';
import * as i0 from "@angular/core";
export declare class NotificationComponent implements OnInit, AfterViewInit {
    private elementRef;
    userName: string;
    userEmail: string;
    notifications: NotificationItem[];
    tabs: TabItem[];
    showUserArea: boolean;
    showCloseButton: boolean;
    isOpen: boolean;
    maxHeight: string;
    showTabs: boolean;
    cfcTabRef: any;
    notificationsByTab: NotificationItem[][];
    constructor(elementRef: ElementRef);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    private selectFirstTab;
    organizeNotificationsByTab(): void;
    /**
     * Atualiza os contadores de cada tab
     */
    updateTabCounters(): void;
    /**
     * Fecha o notification quando o usuário clica fora dele
     */
    clickOutside(event: Event): void;
    /**
     * Fecha o notification
     */
    close(): void;
    /**
     * Marca uma notificação como lida
     */
    markAsRead(notification: NotificationItem): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NotificationComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NotificationComponent, "cfc-notification", never, { "userName": { "alias": "userName"; "required": false; }; "userEmail": { "alias": "userEmail"; "required": false; }; "notifications": { "alias": "notifications"; "required": false; }; "tabs": { "alias": "tabs"; "required": false; }; "showUserArea": { "alias": "showUserArea"; "required": false; }; "showCloseButton": { "alias": "showCloseButton"; "required": false; }; "isOpen": { "alias": "isOpen"; "required": false; }; "maxHeight": { "alias": "maxHeight"; "required": false; }; "showTabs": { "alias": "showTabs"; "required": false; }; }, {}, never, never, false, never>;
}
