import { EAddonPricingType, IPriceInfo } from '@roomstay/core';
import dayjs from 'dayjs';
interface IAddon {
    code: string;
    /**
     * The SynXis CR RatePlan Code associated with the Package if the Package is restricted to certain RatePlans
     */
    ratePlanCode: string;
    name: string;
    description: string;
    /**
     * Whether the price for this package is included in the room rate.
     * (Always `false` unless the price is zero)
     */
    inclusive: boolean;
    image?: string;
    url?: string;
    /**
     * Defines how a service is priced.
     * Values:
     * Per Stay
     * Per Night
     * Per Person
     * Per Person Per Night
     */
    pricingType: EAddonPricingType;
    hideDatePicker?: boolean;
    category: string;
    cancelPenalty?: string;
    guaranteeDescription?: string;
    availability: {
        [date: string]: PriceInfo;
    };
    checkInDate: dayjs.Dayjs;
    checkOutDate: dayjs.Dayjs;
}
export declare const ADDON_PER_NIGHT_TYPES: EAddonPricingType[];
export declare const ADDON_PER_PERSON_PER_NIGHT_TYPES: EAddonPricingType[];
export declare class Addon {
    code: string;
    /**
     * The SynXis CR RatePlan Code associated with the Package if the Package is restricted to certain RatePlans
     */
    ratePlanCode: string;
    name: string;
    description: string;
    /**
     * Whether the price for this package is included in the room rate.
     * (Always `false` unless the price is zero)
     */
    inclusive: boolean;
    image?: string;
    url?: string;
    /**
     * Defines how a service is priced.
     * Values:
     * Per Stay
     * Per Night
     * Per Person
     * Per Person Per Night
     */
    pricingType: EAddonPricingType;
    hideDatePicker: false;
    hideQuantity: false;
    category: string;
    cancelPenalty?: string;
    guaranteeDescription?: string;
    availability: {
        [date: string]: PriceInfo;
    };
    selected?: boolean;
    selectorDates: {
        text: string;
        value: string;
    }[];
    firstDate?: string;
    checkInDate: dayjs.Dayjs;
    checkOutDate: dayjs.Dayjs;
    nights: number;
    order?: number;
    constructor(props?: IAddon);
    static fromData(data: any): Addon;
    applyData(data: IAddon): void;
}
export type PriceInfo = IPriceInfo & {
    fee?: number;
    adultFee?: number;
    childFee?: number;
    selectorTimes?: {
        text: string;
        value: string;
    }[];
};
export {};
