import { RegistrationStatusEnum } from 'src/common/enum/registration-status.enum';
export declare const ZOOM_ENV_KEYS: {
    readonly ENABLE: "ENABLE_ZOOM";
    readonly ACCOUNT_ID: "ZOOM_ACCOUNT_ID";
    readonly CLIENT_ID: "ZOOM_CLIENT_ID";
    readonly CLIENT_SECRET: "ZOOM_CLIENT_SECRET";
    readonly BASE_URL: "ZOOM_BASE_URL";
    readonly AUTH_URL: "ZOOM_AUTH_URL";
    readonly ADMIN_EMAIL: "ZOOM_ADMIN_EMAIL";
    readonly SDK_KEY: "ZOOM_SDK_KEY";
    readonly SDK_SECRET: "ZOOM_SDK_SECRET";
    readonly WEBHOOK_SECRET_TOKEN: "ZOOM_WEBHOOK_SECRET_TOKEN";
    readonly RECONCILIATION_CRON: "ZOOM_RECONCILIATION_CRON";
};
export declare const ZOOM_DEFAULTS: {
    readonly BASE_URL: "https://api.zoom.us/v2";
    readonly AUTH_URL: "https://zoom.us/oauth/token";
    readonly TIMEZONE: "Asia/Calcutta";
    readonly RECONCILIATION_CRON: "0 * * * *";
    readonly TOKEN_EXPIRY_SKEW_SECONDS: 60;
    readonly JOIN_TOKEN_TTL_SECONDS: 172800;
};
export declare const ZOOM_CANCEL_INSTEAD_OF_DELETE_REGISTRANT = false;
export declare const ZOOM_MANUAL_APPROVAL_REGISTRANTS = false;
export declare const ZOOM_RESOURCE_TYPE: {
    readonly SCHEDULED_MEETING: 2;
    readonly SCHEDULED_WEBINAR: 5;
    readonly RECURRING_FIXED_MEETING: 8;
    readonly RECURRING_FIXED_WEBINAR: 9;
};
export declare const ZOOM_RECURRENCE_TYPE: {
    readonly DAILY: 1;
    readonly WEEKLY: 2;
    readonly MONTHLY: 3;
};
export declare const ZOOM_APPROVAL_TYPE: {
    readonly AUTOMATIC: 0;
    readonly MANUAL: 1;
    readonly NONE: 2;
};
export declare const ZOOM_NO_COMMS_WEBINAR_SETTINGS: {
    readonly registrants_confirmation_email: false;
    readonly registrants_email_notification: false;
    readonly attendees_and_panelists_reminder_email: {
        readonly enable: false;
    };
    readonly follow_up_attendees_email: {
        readonly enable: false;
    };
    readonly follow_up_absentees_email: {
        readonly enable: false;
    };
};
export declare const ZOOM_NO_COMMS_MEETING_SETTINGS: {
    readonly registrants_confirmation_email: false;
    readonly registrants_email_notification: false;
};
export declare const ZOOM_REGISTRATION_TYPE: {
    readonly REGISTER_ONCE_ATTEND_ANY: 1;
};
export declare const ZOOM_PAGINATION: {
    readonly DEFAULT_PAGE_SIZE: 300;
};
export declare const ZOOM_COLLECTION_KEY: {
    readonly REGISTRANTS: "registrants";
    readonly PARTICIPANTS: "participants";
    readonly PANELISTS: "panelists";
    readonly ABSENTEES: "absentees";
};
export declare const ZOOM_HTTP_STATUS: {
    readonly UNAUTHORIZED: 401;
    readonly NOT_FOUND: 404;
    readonly TOO_MANY_REQUESTS: 429;
    readonly SERVER_ERROR_MIN: 500;
};
export declare const ZOOM_RETRY: {
    readonly MAX_ATTEMPTS: 3;
    readonly BASE_DELAY_MS: 500;
    readonly MAX_DELAY_MS: 8000;
};
export declare const ZOOM_IDEMPOTENT_METHODS: readonly string[];
export declare const ZOOM_API_CODE: {
    readonly PAST_DATA_NOT_READY: 3001;
};
export declare const ZOOM_API_PATHS: {
    readonly USER_WEBINARS: (email: string) => string;
    readonly USER_WEBINAR_TEMPLATES: (email: string) => string;
    readonly WEBINAR: (webinarId: string) => string;
    readonly WEBINAR_PANELISTS: (webinarId: string) => string;
    readonly WEBINAR_REGISTRANTS: (webinarId: string) => string;
    readonly WEBINAR_REGISTRANTS_STATUS: (webinarId: string) => string;
    readonly PAST_WEBINAR_PARTICIPANTS: (webinarId: string) => string;
    readonly PAST_WEBINAR_ABSENTEES: (webinarId: string) => string;
    readonly USER_MEETINGS: (email: string) => string;
    readonly USER_MEETING_TEMPLATES: (email: string) => string;
    readonly MEETING: (meetingId: string) => string;
    readonly MEETING_REGISTRANTS: (meetingId: string) => string;
    readonly MEETING_REGISTRANTS_STATUS: (meetingId: string) => string;
    readonly PAST_MEETING_PARTICIPANTS: (meetingUuidOrId: string) => string;
};
export declare const ZOOM_SWAGGER: {
    readonly TAG: "zoom";
    readonly CREATE_WEBINAR: "Create a Zoom session (webinar or meeting)";
    readonly LIST_TEMPLATES: "Admin: list existing Zoom webinar templates (id + name)";
    readonly UPDATE_WEBINAR: "Update a Zoom session (webinar or meeting)";
    readonly DELETE_WEBINAR: "Delete a Zoom session (webinar or meeting)";
    readonly GET_WEBINAR: "Get a Zoom session by ID";
    readonly LIST_WEBINARS: "List Zoom sessions (webinars and meetings)";
    readonly REGISTER: "Register/unregister/downgrade a user for a webinar or meeting";
    readonly BULK_REGISTER: "Admin: bulk-register all confirmed registrants (by programId or sessionId) to Zoom as a background job";
    readonly BULK_REGISTER_STATUS: "Admin: poll the status/progress of a bulk Zoom registration job";
    readonly LIST_REGISTRATIONS: "Admin: list a session's eligible registrants with their Zoom join URL (paginated/searchable; download=true for Excel)";
    readonly SYNC_TRACKING: "Admin: pull latest attendance & analytics from Zoom for a session (reconcile)";
    readonly GET_ANALYTICS: "Admin: get the reconciled Zoom attendance & analytics for a session";
    readonly JOIN_TOKEN: "Generate an SDK join token for a meeting/webinar";
    readonly WEBHOOK: "Receive Zoom webhook events";
};
export declare const ZOOM_LOG: {
    readonly WEBINAR_CREATED: "Zoom webinar created";
    readonly WEBINAR_UPDATED: "Zoom webinar updated";
    readonly WEBINAR_DELETED: "Zoom webinar deleted";
    readonly MEETING_CREATED: "Zoom meeting created";
    readonly MEETING_UPDATED: "Zoom meeting updated";
    readonly MEETING_DELETED: "Zoom meeting deleted";
    readonly WEBHOOK_RECEIVED: "Zoom webhook received";
    readonly TRACKING_SYNCED: "Zoom tracking synced";
    readonly RECONCILIATION_STARTED: "Zoom reconciliation cron started";
    readonly RECONCILIATION_COMPLETED: "Zoom reconciliation cron completed";
    readonly API_REQUEST_FAILED: "Zoom API request failed";
    readonly API_RETRY_SUCCEEDED: "Zoom API request succeeded after token refresh";
    readonly API_RETRY_SCHEDULED: "Zoom API request hit a transient failure; retrying after backoff";
    readonly PAST_DATA_UNAVAILABLE: "Zoom past-webinar data not available yet";
    readonly SESSION_PERSIST_FAILED: "Error persisting zoom session details";
    readonly ROLLBACK_FAILED: "Failed to roll back orphaned zoom resource";
    readonly WEBINAR_UPDATE_FAILED: "Error updating zoom webinar";
    readonly MEETING_UPDATE_FAILED: "Error updating zoom meeting";
    readonly PANELIST_RESOLVE_FAILED: "Failed to resolve panelist join details";
};
export declare const REGISTRATION_INELIGIBLE_STATUSES: RegistrationStatusEnum[];
export declare const JOIN_STATUS: {
    readonly ATTENDED: "attended";
    readonly ABSENT: "absent";
};
export declare const DROPOFF_ATTENDANCE_RATIO = 0.8;
export declare const DEFAULT_BATCH_SIZE = 10;
export declare const PANELIST_ADD_BATCH_SIZE = 30;
export declare const BULK_BATCH_DELAY_MS = 1000;
export declare const PROVISIONED_SESSION_SCAN_LIMIT = 1000;
export declare const ATTENDANCE_MARK_CONCURRENCY = 25;
