import type { Request, Response } from 'express';
import { CreateNotificationDto } from './dto/create-notification.dto';
import { UpdateProgressDto } from './dto/update-progress.dto';
import { NotificationService } from './notification.service';
export declare class NotificationController {
    private readonly notificationService;
    constructor(notificationService: NotificationService);
    list({ id }: {
        id: any;
    }, paginationParams: any): Promise<{
        total: any;
        lastPage: number;
        page: number;
        pageSize: number;
        prev: number;
        next: number;
        data: any[];
    }>;
    stream({ id }: {
        id: any;
    }, req: Request, res: Response): Promise<void>;
    unreadCount({ id }: {
        id: any;
    }): Promise<{
        count: number;
    }>;
    markAllRead({ id }: {
        id: any;
    }): Promise<import("@prisma/client").Prisma.BatchPayload>;
    markRead({ id: userId }: {
        id: any;
    }, id: number): Promise<{
        type: import("@prisma/client").$Enums.notification_type_enum;
        progress: number | null;
        id: number;
        body: string | null;
        title: string;
        status: import("@prisma/client").$Enums.notification_status_enum;
        icon: string | null;
        user_id: number;
        created_at: Date;
        updated_at: Date;
        started_at: Date | null;
        finished_at: Date | null;
        action_url: string | null;
        action_type: import("@prisma/client").$Enums.notification_action_type_enum | null;
        action_data: import("@prisma/client/runtime/library").JsonValue | null;
        auto_remove: boolean;
    }>;
    updateProgress({ id: userId }: {
        id: any;
    }, id: number, dto: UpdateProgressDto): Promise<{
        type: import("@prisma/client").$Enums.notification_type_enum;
        progress: number | null;
        id: number;
        body: string | null;
        title: string;
        status: import("@prisma/client").$Enums.notification_status_enum;
        icon: string | null;
        user_id: number;
        created_at: Date;
        updated_at: Date;
        started_at: Date | null;
        finished_at: Date | null;
        action_url: string | null;
        action_type: import("@prisma/client").$Enums.notification_action_type_enum | null;
        action_data: import("@prisma/client/runtime/library").JsonValue | null;
        auto_remove: boolean;
    }>;
    deleteAll({ id }: {
        id: any;
    }): Promise<import("@prisma/client").Prisma.BatchPayload>;
    delete({ id: userId }: {
        id: any;
    }, id: number): Promise<{
        type: import("@prisma/client").$Enums.notification_type_enum;
        progress: number | null;
        id: number;
        body: string | null;
        title: string;
        status: import("@prisma/client").$Enums.notification_status_enum;
        icon: string | null;
        user_id: number;
        created_at: Date;
        updated_at: Date;
        started_at: Date | null;
        finished_at: Date | null;
        action_url: string | null;
        action_type: import("@prisma/client").$Enums.notification_action_type_enum | null;
        action_data: import("@prisma/client/runtime/library").JsonValue | null;
        auto_remove: boolean;
    }>;
    create(data: CreateNotificationDto): Promise<{
        type: import("@prisma/client").$Enums.notification_type_enum;
        progress: number | null;
        id: number;
        body: string | null;
        title: string;
        status: import("@prisma/client").$Enums.notification_status_enum;
        icon: string | null;
        user_id: number;
        created_at: Date;
        updated_at: Date;
        started_at: Date | null;
        finished_at: Date | null;
        action_url: string | null;
        action_type: import("@prisma/client").$Enums.notification_action_type_enum | null;
        action_data: import("@prisma/client/runtime/library").JsonValue | null;
        auto_remove: boolean;
    }>;
}
//# sourceMappingURL=notification.controller.d.ts.map