import { ClsService } from 'nestjs-cls';
import { Repository } from 'typeorm';
import { StorageService } from '../../common/storage/storage.service';
import { TenantEntity } from '../../entities/tenant.entity';
import { ActivityTicketBatchRepository } from './repositories/activity-ticket-batch.repository';
import { ActivityTicketItemRepository } from './repositories/activity-ticket-item.repository';
import { ActivityTicketJourneyRepository } from './repositories/activity-ticket-journey.repository';
import { CreateActivityTicketBatchDto } from './dto/create-activity-ticket-batch.dto';
import { UpdateActivityTicketBatchDto } from './dto/update-activity-ticket-batch.dto';
import { TopUpBatchDto } from './dto/topup-batch.dto';
import { AssignTicketDto } from './dto/assign-ticket.dto';
import { UpdateTicketItemDto } from './dto/update-ticket-item.dto';
import { ActivityTicketBatchEntity, TicketBatchStatus } from '../../entities/activity-ticket-batch.entity';
import { ActivityTicketItemEntity } from '../../entities/activity-ticket-item.entity';
export declare class ActivityTicketService {
    private readonly batchRepo;
    private readonly itemRepo;
    private readonly journeyRepo;
    private readonly cls;
    private readonly storage;
    private readonly tenantRepo;
    constructor(batchRepo: ActivityTicketBatchRepository, itemRepo: ActivityTicketItemRepository, journeyRepo: ActivityTicketJourneyRepository, cls: ClsService, storage: StorageService, tenantRepo: Repository<TenantEntity>);
    private syncLineTicketStatus;
    private moveTicketFile;
    private currentTenantPrefix;
    findAllBatches(params: {
        page?: number;
        limit?: number;
        search?: string;
        activity_id?: string;
        status?: TicketBatchStatus;
    }): Promise<{
        items: ActivityTicketBatchEntity[];
        meta: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
        };
    }>;
    findBatchById(id: string): Promise<ActivityTicketBatchEntity>;
    findMatchingBookings(batchId: string): Promise<{
        booking_id: string;
        booking_number: string;
        guest_name: string | null;
        guest_mobile: string | null;
        start_date: string;
        end_date: string;
        adults: number;
        children_count: number;
        activity_items: number;
        already_assigned: number;
    }[]>;
    findActiveBatchesForActivity(activityId: string): Promise<ActivityTicketBatchEntity[]>;
    createBatch(dto: CreateActivityTicketBatchDto): Promise<{
        message: string;
        batches: ActivityTicketBatchEntity[];
    }>;
    updateBatch(id: string, dto: UpdateActivityTicketBatchDto): Promise<{
        message: string;
    }>;
    topUpBatch(id: string, dto: TopUpBatchDto): Promise<{
        message: string;
    }>;
    deleteBatch(id: string): Promise<{
        message: string;
    }>;
    assignTicket(dto: AssignTicketDto): Promise<{
        message: string;
        ticket_id: string;
        ticket_ref_no: string;
    }>;
    unassignTicket(ticketItemId: string): Promise<{
        message: string;
    }>;
    updateTicketItem(ticketItemId: string, dto: UpdateTicketItemDto): Promise<{
        message: string;
    }>;
    getTicketsForBookingActivityItem(bookingActivityItemId: string): Promise<ActivityTicketItemEntity[]>;
    findBatchesForBooking(bookingId: string, activityId?: string): Promise<ActivityTicketBatchEntity[]>;
    getTicketJourney(ticketItemId: string): Promise<import("../../entities").ActivityTicketJourneyEntity[]>;
    private _addItemsToBatch;
}
