import { HttpStatus } from '@nestjs/common';
import { DatabaseService, UploadService } from '../../config';
import { createEventDto, eventFilterDto, updateEventDto } from './events.dto';
export declare class EventsService {
    private readonly db;
    private readonly uploadService;
    constructor(db: DatabaseService, uploadService: UploadService);
    private moveEventImage;
    private includeMembers;
    private ensureMembersExist;
    createEvent(data: createEventDto, owner_id: string): Promise<{
        data: {
            id?: string;
            title?: string;
            image?: any;
            category?: "other" | "meeting" | "training" | "workshop" | "conference" | "social";
            date?: string;
            start_time?: string;
            end_time?: string;
            location?: string;
            attendees?: number;
            event_owner?: string;
            description?: string;
            members?: {
                id: string;
                employee_id: string;
                first_name: string;
                last_name?: string;
                nickname?: string;
                image?: any;
            }[];
            created_at?: string;
            updated_at?: string;
        };
        message: string;
        status: HttpStatus;
        details: any;
    }>;
    getEvents(query: eventFilterDto, owner_id: string): Promise<{
        data: {
            id?: string;
            title?: string;
            image?: any;
            category?: "other" | "meeting" | "training" | "workshop" | "conference" | "social";
            date?: string;
            start_time?: string;
            end_time?: string;
            location?: string;
            attendees?: number;
            event_owner?: string;
            description?: string;
            members?: {
                id: string;
                employee_id: string;
                first_name: string;
                last_name?: string;
                nickname?: string;
                image?: any;
            }[];
            created_at?: string;
            updated_at?: string;
        }[];
        message: string;
        status: HttpStatus;
        details: {
            pagination: {
                total_items: any;
                total_pages: number;
                current_page: number;
                items_per_page: number;
                has_next_page: boolean;
                has_previous_page: boolean;
                next_page: number;
                previous_page: number;
            };
        };
    }>;
    getEventById(id: string, owner_id: string): Promise<{
        data: {
            id?: string;
            title?: string;
            image?: any;
            category?: "other" | "meeting" | "training" | "workshop" | "conference" | "social";
            date?: string;
            start_time?: string;
            end_time?: string;
            location?: string;
            attendees?: number;
            event_owner?: string;
            description?: string;
            members?: {
                id: string;
                employee_id: string;
                first_name: string;
                last_name?: string;
                nickname?: string;
                image?: any;
            }[];
            created_at?: string;
            updated_at?: string;
        };
        message: string;
        status: HttpStatus;
        details: any;
    }>;
    updateEvent(id: string, data: updateEventDto, owner_id: string): Promise<{
        data: {
            id?: string;
            title?: string;
            image?: any;
            category?: "other" | "meeting" | "training" | "workshop" | "conference" | "social";
            date?: string;
            start_time?: string;
            end_time?: string;
            location?: string;
            attendees?: number;
            event_owner?: string;
            description?: string;
            members?: {
                id: string;
                employee_id: string;
                first_name: string;
                last_name?: string;
                nickname?: string;
                image?: any;
            }[];
            created_at?: string;
            updated_at?: string;
        };
        message: string;
        status: HttpStatus;
        details: any;
    }>;
    deleteEvent(id: string, owner_id: string): Promise<{
        data: any;
        message: string;
        status: HttpStatus;
        details: any;
    }>;
}
