import { Response } from 'express';
import { ProgramAccessService } from './program-access.service';
import { AddProgramAccessUsersDto } from './dto/add-program-access-users.dto';
import { UpdateProgramAccessUserDto } from './dto/update-program-access-user.dto';
import { QueryProgramAccessUsersDto } from './dto/query-program-access-users.dto';
import { BulkUpdateProgramAccessDto } from './dto/bulk-update-program-access.dto';
import { BulkRemoveProgramAccessDto } from './dto/bulk-remove-program-access.dto';
import { ResponseService } from 'src/common/response-handling/response-handler';
import { AppLoggerService } from 'src/common/services/logger.service';
export declare class ProgramAccessController {
    private readonly programAccessService;
    private readonly responseService;
    private readonly logger;
    constructor(programAccessService: ProgramAccessService, responseService: ResponseService, logger: AppLoggerService);
    addProgramAccessUsers(programId: number, dto: AddProgramAccessUsersDto, req: any, res: Response): Promise<void>;
    getProgramAccessUsers(programId: number, query: QueryProgramAccessUsersDto, res: Response): Promise<void>;
    bulkUpdateProgramAccessUsers(programId: number, dto: BulkUpdateProgramAccessDto, req: any, res: Response): Promise<void>;
    bulkRemoveProgramAccessUsers(programId: number, dto: BulkRemoveProgramAccessDto, req: any, res: Response): Promise<void>;
    updateProgramAccessUser(programId: number, userId: number, dto: UpdateProgramAccessUserDto, req: any, res: Response): Promise<void>;
    removeProgramAccessUser(programId: number, userId: number, req: any, res: Response): Promise<void>;
    checkUserAccess(programId: number, userId: number, res: Response): Promise<void>;
}
