import { HttpStatus } from '@nestjs/common';
import { DatabaseService, NotificationSourceType } from '../../config';
import { NotificationGateway } from '../../notification.socket';
import { NotificationFilterDto, NotificationMarkAsReadDto } from './notifications.dto';
type SendNotificationPayload = {
    owner_id: string;
    title: string;
    message: string;
    type: NotificationSourceType;
    meta?: any;
    start_time?: Date;
    end_time?: Date;
    duration?: number;
    reference_id?: string;
    member_id?: string;
    member_ids?: string[];
    department_ids?: string[];
    roles?: string[];
    include_owner?: boolean;
    include_admins?: boolean;
    include_all_members?: boolean;
};
export declare class NotificationsService {
    private readonly db;
    private readonly gateway;
    constructor(db: DatabaseService, gateway: NotificationGateway);
    private buildPaginationDetails;
    sendNotification(data: SendNotificationPayload): Promise<any>;
    getNotifications(query: NotificationFilterDto, member_id: string): Promise<{
        data: any;
        details: {
            summary: any;
            pagination: {
                total_items: number;
                total_pages: number;
                current_page: number;
                items_per_page: number;
                has_next_page: boolean;
                has_previous_page: boolean;
                next_page: number;
                previous_page: number;
            };
        };
        message: string;
        status: HttpStatus;
    }>;
    markAsRead(data: NotificationMarkAsReadDto): Promise<{
        data: any;
        status: HttpStatus;
        message: string;
        details: any;
    }>;
    markAllAsRead(memberId: string): Promise<{
        data: any;
        status: HttpStatus;
        message: string;
        details: any;
    }>;
    private resolveRecipients;
}
export {};
