import { ConfigService } from '@nestjs/config'; import { AuthenticationModuleOptions } from '../../../authentication'; import { BaseHttpService } from '../../base-http.service'; import { CreateGuildMemberPassDtoV1, CreateTeamMemberPassDtoV1 } from './dtos'; import { PassType, PassTypeDtoMap } from './pass-types'; /** * PassService * * Encapsulates communication with the digital pass service. * Provides unified methods for creating, retrieving, and deleting team or guild member passes. * Supports both serial-number-based and type/member-based access. */ export declare class PassService extends BaseHttpService { /** * Creates a PassService client. * * @param authenticationOptions Authentication options injected from the Auth module. * @param configService NestJS configuration service for environment resolution. */ constructor(authenticationOptions: AuthenticationModuleOptions, configService: ConfigService); /** * Fetches a digital pass by its serial number. * * @param {string} serialNumber - Unique serial number of the pass. * @returns {Promise} - Returns the SAS URL of the pass. */ getPassBySerialV1(serialNumber: string): Promise; /** * Deletes a digital pass by its serial number. * * @param {string} serialNumber - Unique serial number of the pass. */ deletePassBySerialV1(serialNumber: string): void; /** * Fetches a pass based on its type and associated member ID. * * @param {PassType} type - Type of the pass. * @param {string} memberId - Identifier of the associated member. * @returns {Promise} - Returns the SAS URL of the pass. */ private getPassByTypeV1; /** * Deletes a pass based on its type and associated member ID. * * @param {PassType} type - Type of the pass. * @param {string} memberId - Identifier of the associated member. */ private deletePassByTypeV1; /** * Creates a pass using its type and corresponding payload DTO. * * @template Type - A specific pass type from PassType. * @param {Type} type - Type of the pass to create. * @param {PassTypeDtoMap[Type]} payload - DTO matching the type of pass. * @returns {Promise} - The resulting pass URL or identifier. */ createPassV1(type: Type, payload: PassTypeDtoMap[Type]): Promise; /** * Retrieves the digital pass for a specific team member. * * @param {string} memberId - Identifier of the team member. * @returns {Promise} - SAS URL of the team member's pass. */ getTeamMemberPassV1(memberId: string): Promise; /** * Creates a pass for a team member. * * @param {CreateTeamMemberPassDtoV1} data - Required details to generate the team member pass. * @returns {Promise} - URL or ID of the created pass. */ createTeamMemberPassV1(data: CreateTeamMemberPassDtoV1): Promise; /** * Deletes a team member’s pass. * * @param {string} memberId - Identifier of the team member. */ deleteTeamMemberPassV1(memberId: string): void; /** * Retrieves the digital pass for a specific guild member. * * @param {string} memberId - Identifier of the guild member. * @returns {Promise} - SAS URL of the guild member's pass. */ getGuildMemberPassV1(memberId: string): Promise; /** * Creates a pass for a guild member. * * @param {CreateGuildMemberPassDtoV1} data - Required details to generate the guild member pass. * @returns {Promise} - URL or ID of the created pass. */ createGuildMemberPassV1(data: CreateGuildMemberPassDtoV1): Promise; /** * Deletes a guild member’s pass. * * @param {string} memberId - Identifier of the guild member. */ deleteGuildMemberPassV1(memberId: string): void; }