import { BaseController } from './base.controller';
import { NotificationItemService, NotificationService } from 'src/services/notification.service';
import { NotificationEntity } from 'src/entities/notification.entity';
import { CreateNotificationDTO, NotificationQueryDTO, NotificationToggleActiveStatusDTO } from 'src/dtos/notification.dto';
import { IAuthParam, IDDto, SearchQueryDto } from '@serene-dev/la-nest-library';
export declare class NotificationController extends BaseController<NotificationEntity, NotificationQueryDTO> {
    protected service: NotificationService;
    protected itemService: NotificationItemService;
    constructor(service: NotificationService, itemService: NotificationItemService);
    create(body: CreateNotificationDTO, auth: IAuthParam): Promise<string | NotificationEntity>;
    search(query: NotificationQueryDTO): Promise<import("@serene-dev/la-nest-library").ISearchResponse<NotificationEntity>>;
    getMySentNotifications(query: SearchQueryDto, auth: IAuthParam): Promise<string | import("@serene-dev/la-nest-library").ISearchResponse<NotificationEntity>>;
    getMyUnreadNotificationsCount(auth: IAuthParam): Promise<string | {
        count: number;
    }>;
    getMyRecievedNotifications(query: SearchQueryDto, auth: IAuthParam): Promise<string | import("@serene-dev/la-nest-library").ISearchResponse<import("src/entities/notification.entity").NotificationItemEntity>>;
    toggleStatus(body: NotificationToggleActiveStatusDTO, auth: IAuthParam, param: IDDto): Promise<string | NotificationEntity>;
    resend(auth: IAuthParam, param: IDDto): Promise<string | NotificationEntity>;
    markAsRead(auth: IAuthParam, param: IDDto): Promise<string | import("src/entities/notification.entity").NotificationItemEntity>;
}
