import { Response } from 'express';
import { AuthenticatedRequest } from 'src/common/interfaces/authenticated-request.interface';
import { ResponseService } from 'src/common/response-handling/response-handler';
import { ZoomWebinarStatus } from 'src/common/enum/zoom-webinar-status.enum';
import { OnlineSessionService } from '../services/online-session.service';
import { CreateOnlineSessionDto } from '../dto/create-online-session.dto';
import { BulkCreateOnlineSessionDto } from '../dto/bulk-create-online-session.dto';
import { CreateSharedOnlineSessionDto } from '../dto/create-shared-online-session.dto';
import { UpdateOnlineSessionDto } from '../dto/update-online-session.dto';
import { UpdateOnlineSessionStatusDto } from '../dto/update-online-session-status.dto';
import { RegisterParticipantDto } from '../dto/register-participant.dto';
import { BulkRegisterParticipantsDto } from '../dto/bulk-register-participants.dto';
import { BulkFailuresQueryDto } from '../dto/bulk-failures-query.dto';
import { ProgramFailuresQueryDto, ProgramRetryQueryDto } from '../dto/program-failures-query.dto';
import { ListSessionRegistrationsDto } from '../dto/list-session-registrations.dto';
import { ListProgramEligibleRegistrationsDto } from '../dto/list-program-eligible-registrations.dto';
import { SetRegistrationActivationDto } from '../dto/set-registration-activation.dto';
import { ProvisionStatusQueryDto, ProvisionRegistrationsQueryDto } from '../dto/provision-status-query.dto';
export declare class OnlineSessionController {
    private readonly service;
    private readonly responseService;
    constructor(service: OnlineSessionService, responseService: ResponseService);
    private toResponse;
    private isRelationalManager;
    create(dto: CreateOnlineSessionDto, req: AuthenticatedRequest, res: Response): Promise<void>;
    createBulk(dto: BulkCreateOnlineSessionDto, req: AuthenticatedRequest, res: Response): Promise<void>;
    createShared(dto: CreateSharedOnlineSessionDto, req: AuthenticatedRequest, res: Response): Promise<void>;
    register(dto: RegisterParticipantDto, req: AuthenticatedRequest, res: Response): Promise<void>;
    bulkRegister(dto: BulkRegisterParticipantsDto, req: AuthenticatedRequest, res: Response): Promise<void>;
    bulkRegisterStatus(jobId: number, res: Response): Promise<void>;
    bulkRegisterFailures(jobId: number, query: BulkFailuresQueryDto, req: AuthenticatedRequest, res: Response): Promise<void>;
    retryBulkRegistration(jobId: number, req: AuthenticatedRequest, res: Response): Promise<void>;
    programRegisterFailures(query: ProgramFailuresQueryDto, req: AuthenticatedRequest, res: Response): Promise<void>;
    retryProgramRegistration(query: ProgramRetryQueryDto, req: AuthenticatedRequest, res: Response): Promise<void>;
    listProgramEligibleRegistrations(query: ListProgramEligibleRegistrationsDto, req: AuthenticatedRequest, res: Response): Promise<void>;
    provisionStatus(query: ProvisionStatusQueryDto, req: AuthenticatedRequest, res: Response): Promise<void>;
    provisionRegistrations(sessionId: number, query: ProvisionRegistrationsQueryDto, req: AuthenticatedRequest, res: Response): Promise<void>;
    listRegistrations(id: number, query: ListSessionRegistrationsDto, req: AuthenticatedRequest, res: Response): Promise<void>;
    setRegistrationActivation(registrationId: number, dto: SetRegistrationActivationDto, req: AuthenticatedRequest, res: Response): Promise<void>;
    getEligibleCount(id: number, res: Response): Promise<void>;
    findAll(limit: 10 | undefined, offset: 0 | undefined, status: ZoomWebinarStatus, programId: number, req: AuthenticatedRequest, res: Response): Promise<void>;
    findOne(id: number, req: AuthenticatedRequest, res: Response): Promise<void>;
    update(id: number, dto: UpdateOnlineSessionDto, req: AuthenticatedRequest, res: Response): Promise<void>;
    updateStatus(id: number, dto: UpdateOnlineSessionStatusDto, req: AuthenticatedRequest, res: Response): Promise<void>;
    remove(id: number, req: AuthenticatedRequest, res: Response): Promise<void>;
}
