import { ObjectID } from 'bson'; import { LanguageKeys } from '../schemas/localized-text'; import { IService } from '../schemas/service'; import { IServiceGroup, IServiceGroupSingleLang } from '../schemas/serviceGroup'; import { IServiceOrganization } from '../schemas/serviceOrganization'; import { ITopLocation } from '../schemas/top-location'; interface ITripWithJustServiceIds { services: Array>; } export declare function getUniqueServiceIds(trips: ITripWithJustServiceIds[]): ObjectID[]; export declare function isFastBookable(services: Array>): boolean; declare type IGetNumberOfDaysInput = Pick & { services: Array>; }; export declare function getNumberOfDays(trip: IGetNumberOfDaysInput): number; /** * This method is useful when you want to know if a trip was even booked * For example: * - if you don't want to allow to modify a trip after booking once * - if you don't want to allow to modify a cancelled trip */ export declare function wasTripEverBooked(trip: Pick): boolean; /** * Calculates a rough price from the given peopleCount */ export declare function calculateTripPriceFromPricing(trip: IServiceGroup, adults: number, children: number, infants: number): number; /** * Calculates the price of a trip * @returns [totalPrice, bookablePrice] */ export declare function calculateTripPrice(trip: Pick, services: Array>): [number, number]; /** * Calculates the TOP 3 locations where most of the services in the trip are */ export declare function getTopLocations(services: Array>, topN?: number): ITopLocation[]; export declare function toSingleLangTrip(trip: Partial, lang: LanguageKeys): IServiceGroupSingleLang; export {}; //# sourceMappingURL=service-group.d.ts.map