import { Repository } from 'typeorm';
import { ClsService } from 'nestjs-cls';
import { QuoteRepository } from './repositories/quote.repository';
import { CreateQuoteDto } from './dto/create-quote.dto';
import { UpdateQuoteDto } from './dto/update-quote.dto';
import { QueryQuoteHotelEntity } from '../../entities/query-quote-hotel.entity';
import { QueryQuoteTransportEntity } from '../../entities/query-quote-transport.entity';
import { QueryQuoteActivityEntity } from '../../entities/query-quote-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 { QueryEntity } from '../../entities/query.entity';
export declare class QuoteService {
    private readonly repo;
    private readonly cls;
    private readonly auditService;
    private readonly hotelItemRepo;
    private readonly transportItemRepo;
    private readonly activityItemRepo;
    private readonly specialItemRepo;
    private readonly transportPricingRepo;
    private readonly activityPricingRepo;
    private readonly seasonRepo;
    private readonly exchangeRateRepo;
    private readonly queryRepo;
    constructor(repo: QuoteRepository, cls: ClsService, auditService: AuditService, hotelItemRepo: Repository<QueryQuoteHotelEntity>, transportItemRepo: Repository<QueryQuoteTransportEntity>, activityItemRepo: Repository<QueryQuoteActivityEntity>, specialItemRepo: Repository<QueryQuoteSpecialEntity>, transportPricingRepo: Repository<TransportPricingEntity>, activityPricingRepo: Repository<ActivityPricingEntity>, seasonRepo: Repository<SeasonEntity>, exchangeRateRepo: Repository<ExchangeRateEntity>, queryRepo: Repository<QueryEntity>);
    private getTenantId;
    findByQueryId(queryId: string): Promise<import("../../entities").QueryQuoteEntity[]>;
    findSummaries(queryId: string): Promise<any[]>;
    findQuoteDetail(queryId: string, quoteId: string): Promise<import("../../entities").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;
    }>;
    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): Promise<{
        id: string;
        quote_id: string;
        quote_number: number;
        message: string;
    }>;
    lookupTransportPrice(transportServiceId: string, vehicleType: string, date?: string): Promise<{
        price: null;
        source: string;
        season_name?: undefined;
    } | {
        price: number;
        source: string;
        season_name: string;
    } | {
        price: number | null;
        source: string;
        season_name: null;
    }>;
    lookupActivityPrice(activityId: string, ticketId: string | null, ageGroup: string, date?: string): Promise<{
        price: number;
        source: string;
        season_name: string;
    } | {
        price: number | null;
        source: string;
        season_name: null;
    }>;
    lookupExchangeRate(fromCurrencyId: string, toCurrencyId: string): Promise<{
        rate: number | null;
    }>;
    private saveChildItems;
    private hardDeleteChildItems;
    private recalculateTotals;
    private sumField;
    private getSeasonalPrice;
    private stripMeta;
}
