import { HttpService } from '@nestjs/common'; import { Restaurant, Business, Profile, InHouseDelivery, RegisterMachineDto, Pickup, PayoutAccount, DineIn, UpdateRemoteSupportDto, FeedmeDelivery } from '../business.model'; import { DocumentType, ReturnModelType } from '@typegoose/typegoose'; import { Ability } from '@casl/ability'; import { Types } from 'mongoose'; import { NearByOption, NearByRestaurant, PosRestuarant, CustomerFindByOptionsPayload } from '../business.interface'; import { CouchdbStaticService } from '~backend/couchdb/couchdb-static/couchdb-static.service'; import { deliveryResult, canPickup, canDelivery, canDiscover, customerRestaurant, restaurantSetting } from '../helper'; import { FlagsmithService } from "~backend/flagsmith/flagsmith.service"; export declare class RestaurantService { readonly restaurantModel: ReturnModelType; private readonly businessModel; private readonly couchdbStaticService; private readonly httpService; private readonly flagsmithService; private readonly logger; constructor(restaurantModel: ReturnModelType, businessModel: ReturnModelType, couchdbStaticService: CouchdbStaticService, httpService: HttpService, flagsmithService: FlagsmithService); all(): any; pagination(payload: { skip: number; limit: number; sortBy: string; descending: boolean; query: any; }): any; static deliveryResult: typeof deliveryResult; static canPickup: typeof canPickup; static canDelivery: typeof canDelivery; static canDiscover: typeof canDiscover; static customerRestaurant: typeof customerRestaurant; static restaurantSetting: typeof restaurantSetting; findByBusinessId(businessId: string, ability?: Ability): Promise; findByBusinessIds(businessIds: Types.ObjectId[]): Promise; findByToken(apiToken: string): Promise; find(id: string): Promise>; toPosRestuarant(r: Restaurant): PosRestuarant; customerFindByOptions({ lat, lng, name, limit, skip, id, business, features, }: CustomerFindByOptionsPayload): Promise; nearBy(opt: NearByOption): Promise; updateProfile(id: string, profile: Profile): Promise; validateUrl(id: string, url?: string): Promise; updatePosVersion(id: string, posVersion: string): Promise; updatePosHeartbeat(id: string, posHeartbeat: string): Promise; updateInHouseDelivery(id: string, deliver: InHouseDelivery): Promise; updateFeedmeDelivery(id: string, deliver: FeedmeDelivery): Promise; updatePickup(id: string, pickup: Pickup): Promise; updateDineIn(id: string, dineIn: DineIn): Promise; create(payload: Restaurant): Promise; updateLicense(id: string, { expiredAt, features }: { expiredAt: any; features: any; }): Promise; setUpdateChannel(id: string, { channel }: { channel: any; }): Promise; updateRemoteSupports(id: string, payload: UpdateRemoteSupportDto): Promise; generateOtp(id: string): Promise; revokeMachine(id: string): Promise; registerMachine({ otp, machineId, }: RegisterMachineDto): Promise; delete(id: string): Promise; fixMasterMenuStock(id: string): Promise; updateCatalogId(id: string, catalogId: string | null, additionalCatalogs: string[], takeawayCatalog: string | null, pickupCatalog: string | null): Promise>; updatePayoutAccount(id: string, payoutAccount: PayoutAccount): Promise; updateCustomAttributes(restaurantId: string, customAttributes: Record): Promise; private validateDateString; private updateCouchdbDocs; clearTransaction(restaurantId: string, isStaff: boolean): Promise; }