import { Repository } from 'typeorm';
import { ClsService } from 'nestjs-cls';
import { QuoteRepository } from './repositories/quote.repository';
import { QueryRepository } from './repositories/query.repository';
import { UserReportingService } from '../user/user-reporting.service';
import { CreateQuoteDto } from './dto/create-quote.dto';
import { UpdateQuoteDto } from './dto/update-quote.dto';
import { QueryQuoteEntity } from '../../entities/query-quote.entity';
import { QueryQuoteHotelEntity } from '../../entities/query-quote-hotel.entity';
import { QueryQuoteHotelPeriodEntity } from '../../entities/query-quote-hotel-period.entity';
import { QueryQuoteHotelExtraEntity } from '../../entities/query-quote-hotel-extra.entity';
import { QueryQuoteTransportEntity } from '../../entities/query-quote-transport.entity';
import { QueryQuoteActivityEntity } from '../../entities/query-quote-activity.entity';
import { ActivityEntity } from '../../entities/activity.entity';
import { QueryQuoteSpecialEntity } from '../../entities/query-quote-special.entity';
import { TransportPricingEntity } from '../../entities/transport-pricing.entity';
import { ActivityPricingEntity } from '../../entities/activity-pricing.entity';
import { SeasonEntity } from '../../entities/season.entity';
import { ExchangeRateEntity } from '../../entities/exchange-rate.entity';
import { AuditService } from '../audit/audit.service';
import { ChangeRequestService } from '../change-request/change-request.service';
import { TaxSnapshotService } from '../tax-type/tax-snapshot.service';
import { TaxSlabResolverService } from '../../common/services/tax-slab-resolver.service';
import { CurrencyEntity } from '../../entities/currency.entity';
import { QueryEntity } from '../../entities/query.entity';
import { PermissionCheckService } from '../../common/permissions/permission-check.service';
export declare class QuoteService {
    private readonly repo;
    private readonly cls;
    private readonly auditService;
    private readonly hotelItemRepo;
    private readonly hotelPeriodRepo;
    private readonly hotelExtraRepo;
    private readonly transportItemRepo;
    private readonly activityItemRepo;
    private readonly activityMasterRepo;
    private readonly specialItemRepo;
    private readonly transportPricingRepo;
    private readonly activityPricingRepo;
    private readonly seasonRepo;
    private readonly exchangeRateRepo;
    private readonly queryRepo;
    private readonly permissions;
    private readonly changeRequestService;
    private readonly taxSnapshot;
    private readonly taxResolver;
    private readonly currencyRepo;
    private readonly queryVisibilityRepo;
    private readonly userReporting;
    constructor(repo: QuoteRepository, cls: ClsService, auditService: AuditService, hotelItemRepo: Repository<QueryQuoteHotelEntity>, hotelPeriodRepo: Repository<QueryQuoteHotelPeriodEntity>, hotelExtraRepo: Repository<QueryQuoteHotelExtraEntity>, transportItemRepo: Repository<QueryQuoteTransportEntity>, activityItemRepo: Repository<QueryQuoteActivityEntity>, activityMasterRepo: Repository<ActivityEntity>, specialItemRepo: Repository<QueryQuoteSpecialEntity>, transportPricingRepo: Repository<TransportPricingEntity>, activityPricingRepo: Repository<ActivityPricingEntity>, seasonRepo: Repository<SeasonEntity>, exchangeRateRepo: Repository<ExchangeRateEntity>, queryRepo: Repository<QueryEntity>, permissions: PermissionCheckService, changeRequestService: ChangeRequestService, taxSnapshot: TaxSnapshotService, taxResolver: TaxSlabResolverService, currencyRepo: Repository<CurrencyEntity>, queryVisibilityRepo: QueryRepository, userReporting: UserReportingService);
    private assertQueryVisible;
    private validateTransferActivities;
    private validateRowPax;
    private getTenantId;
    findByQueryId(queryId: string): Promise<QueryQuoteEntity[]>;
    findSummaries(queryId: string): Promise<QueryQuoteEntity[]>;
    findQuoteDetail(queryId: string, quoteId: string): Promise<QueryQuoteEntity>;
    createQuote(queryId: string, dto: CreateQuoteDto): Promise<{
        id: string;
        quote_number: number;
        message: string;
    }>;
    updateQuote(queryId: string, quoteId: string, dto: UpdateQuoteDto): Promise<{
        id: string;
        message: string;
        change_request_ids: string[];
    }>;
    private buildItineraryAuditContext;
    deleteQuote(queryId: string, quoteId: string): Promise<{
        message: string;
    }>;
    selectQuote(queryId: string, quoteId: string): Promise<{
        id: string;
        quote_id: string;
        message: string;
    }>;
    duplicateQuote(queryId: string, quoteId: string, targetQueryId?: string, opts?: {
        skipHotelItems?: boolean;
    }): Promise<{
        id: string;
        quote_id: string;
        quote_number: number;
        message: string;
    }>;
    private augmentTransportPriceResponse;
    lookupTransportPrice(transportServiceId: string, vehicleTypeId: string, date?: string, isShared?: boolean): Promise<{
        base: number | null;
        floor_base: number | null;
        tax_snapshot: import("../../common/services/tax-bifurcation.helper").TaxSlabSnapshotInput | null;
        price: number | null;
        source: string;
        season_name: string | null;
        min_cost: number | null;
        floor: number | null;
    }>;
    private augmentActivityPriceResponse;
    lookupActivityPrice(activityId: string, ticketId: string | null, ageGroup: string, date?: string): Promise<{
        base: number | null;
        floor_base: number | null;
        tax_snapshot: import("../../common/services/tax-bifurcation.helper").TaxSlabSnapshotInput | null;
        price: number | null;
        source: string;
        season_name: string | null;
        floor: number | null;
    }>;
    private firstNonNullSeasonalPrice;
    private seasonNameForIndex;
    lookupExchangeRate(fromCurrencyId: string, toCurrencyId: string): Promise<{
        rate: number;
    } | {
        rate: null;
    }>;
    private saveChildItems;
    private hardDeleteChildItems;
    private recalculateTotals;
    private sumField;
    private lookupMinSupplierCost;
    private findSeasonForDate;
    private getSeasonalPrice;
    private getSeasonalFloor;
    private stripMeta;
}
