import { AxiosInstance } from "axios"; import { Meeting, UpdateMeetingRequest, MeetingRegistrant, UpdateRegistrantRequest, SetupMeetingRequest, SetupMeetingResult } from "../types/meeting.types"; /** * Meeting Service – CRUD operations for appraisal sessions. */ export declare class MeetingService { private readonly httpClient; private readonly publicClient; constructor(httpClient: AxiosInstance, baseUrl: string); /** * Get all meetings with pagination metadata. */ getMeetings(): Promise<{ data: Meeting[]; meta: Record; }>; /** * Get a single meeting by ID. */ getMeetingById(id: string): Promise; /** * Create a new meeting (internal – use `setupMeeting` instead). */ private createMeeting; /** * Update an existing meeting. */ updateMeeting(id: string, data: UpdateMeetingRequest): Promise; /** * Get all registrants for a meeting. */ getRegistrants(meetingId: string): Promise; /** * Create a registrant for a meeting (internal – use `setupMeeting` instead). */ private createRegistrant; /** * Update a registrant. */ updateRegistrant(meetingId: string, registrantId: string, data: UpdateRegistrantRequest): Promise; /** * Create a complete appraisal session in one call. * * This method **enforces** two business rules: * 1. Both the meeting and registrants must be provided. * 2. Exactly 2 registrants are required – one with role `HOST` * and one with role `GUEST`. * * Internally it calls: * - `POST /meet` (create meeting) * - `POST /meet/:id/registrants` × 2 (create both registrants) * * @throws {EkycError} INVALID_REGISTRANTS – when registrant rules are violated */ setupMeeting(request: SetupMeetingRequest): Promise; /** * Join a meeting with a join code. */ joinWithCode(joinCode: string): Promise; } //# sourceMappingURL=meetingService.d.ts.map