import { VoucherClaim } from '~backend/marketing/marketing.interface'; import { Benefit, Member, Membership } from '~backend/marketing/membership/membership.interface'; import { ORDER_TYPE } from '~backend/order/order.interface'; import { RawEffect, TotalAdjustmentCause } from '~core/modules/order/definitions'; import { Promotion } from '~core/modules/promotion'; import { Business, CustomerRestaurant } from '~backend/business/business.interface'; import { CustomerBusiness } from './business/business.interface'; export declare enum ShortUrlType { user = "USER", business = "BUSINESS", restaurant = "RESTAURANT" } interface BaseShortUrl { id: string; } export interface UserShortUrl extends BaseShortUrl { type: ShortUrlType.user; } export interface BusinessShortUrl extends BaseShortUrl { type: ShortUrlType.business; } export interface RestaurantShortUrl extends BaseShortUrl { type: ShortUrlType.restaurant; } export type ShortUrl = UserShortUrl | BusinessShortUrl | RestaurantShortUrl; export interface CustomerBenefit extends Omit { requiredTitle?: string; } export interface CustomerMembership extends Omit { benefits: CustomerBenefit[]; _business: CustomerBusiness; restaurants: CustomerRestaurant[]; } interface CustomerTitle extends Omit { _id: string; } export interface CustomerMember extends Omit { membership: CustomerMembership; titles: CustomerTitle[]; business: string; thumbnail: string; _business: Business; } export declare enum EFFECT_VISIBLE { SHOW = "SHOW", HIDDEN = "HIDDEN", DISABLE = "DISABLE" } export interface CustomerEffect { raw: RawEffect; name: string; visible: EFFECT_VISIBLE; from: TotalAdjustmentCause; referenceId: string; returnId?: string; reason: string; nextSchedule?: string; } export declare class MemberOnlineStorePurchaseDto { bundle: string; member: string; inApp: boolean; } export declare enum ONLINE_ORDER_STATUS { PENDING_PAYMENT = "PENDING_PAYMENT", COMPLETED = "COMPLETED" } export declare class RefundOnlineMemberStoreDto { id: string; reason: string; } interface GetVisiblePayload { restaurantId: string; type: ORDER_TYPE; date: Date; } interface EffectVisible { visible: EFFECT_VISIBLE; reason?: string; } export declare function getPromotionVisible({ date, restaurantId, type }: GetVisiblePayload, promotion: Promotion): EffectVisible; export declare function getClaimVisible({ date, restaurantId, type }: GetVisiblePayload, claim: VoucherClaim): EffectVisible; interface GetBenefitVisiblePayload extends GetVisiblePayload { level: number; tier: number; titles: Member.TitleInfo[]; birthday?: Date; } export declare function getBenefitVisible({ date, restaurantId, type, level, birthday, tier, titles, }: GetBenefitVisiblePayload, benefit: Benefit.Benefit): EffectVisible; export {};