import { DataSource } from 'typeorm';
import { RegistrationRepository } from './registration.repository';
import { RegistrationService } from './registration.service';
import { ArchiveRegistrationDto } from './dto/archive-registration.dto';
import { WaitlistReleaseDto } from './dto/waitlist-release.dto';
import { WaitlistDenyDto } from './dto/waitlist-deny.dto';
import { SeatTransferDto } from './dto/seat-transfer.dto';
import { AdminSendParentalConsentDto, AdminUploadParentalConsentDto, ParentalConsentListQueryDto, SeekerUploadParentalConsentDto } from './dto/update-registration.dto';
import { AllocationClearingService } from 'src/common/services/allocation-clearing.service';
import { AppLoggerService } from 'src/common/services/logger.service';
import { ProgramRegistration, User } from 'src/common/entities';
import { UserRepository } from 'src/user/user.repository';
import { PaymentService } from 'src/payment/payment.service';
import { ZoomRegistrationService } from 'src/zoom/services/zoom-registration.service';
export declare class RegistrationActionService {
    private readonly registrationRepository;
    private readonly allocationClearingService;
    private readonly logger;
    private readonly userRepository;
    private readonly dataSource;
    private readonly registrationService;
    private readonly paymentService;
    private readonly zoomRegistrationService;
    constructor(registrationRepository: RegistrationRepository, allocationClearingService: AllocationClearingService, logger: AppLoggerService, userRepository: UserRepository, dataSource: DataSource, registrationService: RegistrationService, paymentService: PaymentService, zoomRegistrationService: ZoomRegistrationService);
    archive(dto: ArchiveRegistrationDto, user: User): Promise<{
        processed: number[];
        skipped: number[];
    }>;
    waitlistRelease(dto: WaitlistReleaseDto, user: User): Promise<{
        processed: number[];
        skipped: number[];
    }>;
    waitlistDeny(dto: WaitlistDenyDto, user: User): Promise<{
        processed: number[];
        skipped: number[];
    }>;
    validateSeatTransferUser(registrationId: number, phone: string, email: string, countryCode: string): Promise<{
        user: User;
        countryCode: string | null;
        alreadyRegistered: boolean;
        proxyAllowed: boolean;
        existingRegistrationId: number | null;
    }>;
    transferSeat(registrationId: number, dto: SeatTransferDto, actorUserId: number): Promise<{
        registration: ProgramRegistration;
        targetUser: User;
    }>;
    private resolveTransferTargetUser;
    private lookupUserByPhoneEmail;
    private validateTransferAnswers;
    private validateForAction;
    private invalid;
    private registrationBelongsToUser;
    seekerUploadParentalConsent(registrationId: number, dto: SeekerUploadParentalConsentDto, seekerUserId: number): Promise<{
        message: string;
        uploadedAt: Date;
        uploadDeadline: Date | null;
    }>;
    adminSendParentalConsentEmail(registrationId: number, dto: AdminSendParentalConsentDto, adminUserId: number): Promise<{
        message: string;
    }>;
    adminUploadParentalConsent(registrationId: number, dto: AdminUploadParentalConsentDto, adminUserId: number): Promise<{
        message: string;
    }>;
    adminVerifyParentalConsent(registrationId: number, adminUserId: number): Promise<{
        message: string;
    }>;
    adminDeleteParentalConsent(registrationId: number, adminUserId: number): Promise<{
        message: string;
    }>;
    getParentalConsentList(query: ParentalConsentListQueryDto, userRoles: string[], userId: number): Promise<{
        data: any[];
        total: number;
        limit: number;
        offset: number;
    }>;
    getParentalConsentDetail(registrationId: number): Promise<any>;
}
