import { Schema } from 'mongoose';
declare type MixedRuleType<T> = Function | T | any[];
export declare enum CancelPolicy {
    NOT = 0,
    ANY = 1,
    LIMIT = 2,
    PAY = 3
}
export interface CancelSettings {
    deadlineDay?: number;
    deadline?: number;
    percent?: number;
    amount?: number;
}
export interface Breakfast {
    qty?: number;
    price?: number;
}
export declare enum GuaranteeType {
    FULL = "full",
    FIRST = "first"
}
export interface GuaranteeRules {
    description?: string;
    guaranteeType?: GuaranteeType[];
}
export declare enum PayType {
    AFTER = 1,
    PREPAY = 2,
    COMPANY = 3
}
export declare enum RatePlanState {
    NORMAL = "normal",
    DELETE = "deleted"
}
export interface RatePlanDto {
    hotel?: string | Schema.Types.ObjectId;
    name: string;
    payType?: PayType;
    state?: RatePlanState;
    description?: string;
    cancelPolicy?: CancelPolicy;
    cancelSettings?: CancelSettings;
    breakfast?: Breakfast;
    guaranteeRules?: GuaranteeRules;
    ttlExpiredAt?: Date;
    channel?: MixedRuleType<string>;
    payload?: any;
    rawData?: any;
    minRooms?: MixedRuleType<string>;
    maxRooms?: MixedRuleType<string>;
    minDays?: MixedRuleType<string>;
    maxDays?: MixedRuleType<string>;
}
export {};
