import { MeetingService } from './services/meeting.service';
import { MeetingInviteService } from './services/meeting-invite.service';
import { CreateMeetingDto } from './dto/create-meeting.dto';
import { UpdateMeetingDto } from './dto/update-meeting.dto';
import { ListMeetingsQueryDto } from './dto/list-meetings.dto';
import { CreateInviteDto } from './dto/create-invite.dto';
import { SendInviteDto } from './dto/send-invite.dto';
import { EndMeetingDto } from './dto/end-meeting.dto';
export declare class MeetingController {
    private readonly meetings;
    private readonly invites;
    constructor(meetings: MeetingService, invites: MeetingInviteService);
    create(dto: CreateMeetingDto, req: any): Promise<import("./entities/meeting.entity").Meeting>;
    createForAudit(auditRowId: number, req: any): Promise<import("./entities/meeting.entity").Meeting>;
    findAll(q: ListMeetingsQueryDto, req: any): Promise<{
        data: import("./entities/meeting.entity").Meeting[];
        meta: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
        };
    }>;
    findByAudit(auditRowId: number): Promise<import("./entities/meeting.entity").Meeting[]>;
    findByRoomCode(roomCode: string): Promise<import("./entities/meeting.entity").Meeting>;
    getTurnCredentials(): {
        iceServers: ({
            urls: string;
            username?: undefined;
            credential?: undefined;
        } | {
            urls: string[];
            username: string;
            credential: string;
        })[];
    };
    findOne(id: number): Promise<import("./entities/meeting.entity").Meeting>;
    update(id: number, dto: UpdateMeetingDto, req: any): Promise<import("./entities/meeting.entity").Meeting>;
    end(id: number, dto: EndMeetingDto, req: any): Promise<import("./entities/meeting.entity").Meeting>;
    cancel(id: number, req: any): Promise<import("./entities/meeting.entity").Meeting>;
    createInvite(id: number, dto: CreateInviteDto, req: any): Promise<{
        id: number;
        meeting_id: number;
        url: string;
        token: string;
        scope: import("./entities/meeting-invite.entity").InviteScope;
        grant_role: string;
        expires_at: Date;
        passcode: string | undefined;
        whatsapp_url: string | undefined;
        sms_url: string | undefined;
        message_text: string;
        email_sent: boolean;
    }>;
    sendInvite(inviteId: number, dto: SendInviteDto, req: any): Promise<{
        id: number;
        url: string;
        passcode: string | undefined;
        whatsapp_url: string | undefined;
        sms_url: string | undefined;
        message_text: string;
        email_sent: boolean;
        status: import("./entities/meeting-invite.entity").InviteStatus;
        sent_at: Date | null;
    }>;
    listInvites(id: number): Promise<import("./entities/meeting-invite.entity").MeetingInvite[]>;
    revoke(inviteId: number, req: any): Promise<import("./entities/meeting-invite.entity").MeetingInvite>;
}
