import { Types, Document } from 'mongoose';
export declare enum ReferralStatus {
    PENDING = "PENDING",
    REWARDED = "REWARDED",
    EXPIRED = "EXPIRED"
}
export declare class ReferralUsage {
    referredUser: Types.ObjectId;
    referrerUser: Types.ObjectId;
    campaignId: Types.ObjectId;
    referralCode: string;
    successfulBookings: number;
    status: ReferralStatus;
    isBonusCredited: boolean;
}
export type ReferralUsageDocument = ReferralUsage & Document;
export declare const ReferralUsageSchema: import("mongoose").Schema<ReferralUsage, import("mongoose").Model<ReferralUsage, any, any, any, Document<unknown, any, ReferralUsage, any, {}> & ReferralUsage & {
    _id: Types.ObjectId;
} & {
    __v: number;
}, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, ReferralUsage, Document<unknown, {}, import("mongoose").FlatRecord<ReferralUsage>, {}, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & import("mongoose").FlatRecord<ReferralUsage> & {
    _id: Types.ObjectId;
} & {
    __v: number;
}>;
export declare const ReferralUsageModel: import("mongoose").Schema<ReferralUsage, import("mongoose").Model<ReferralUsage, any, any, any, Document<unknown, any, ReferralUsage, any, {}> & ReferralUsage & {
    _id: Types.ObjectId;
} & {
    __v: number;
}, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, ReferralUsage, Document<unknown, {}, import("mongoose").FlatRecord<ReferralUsage>, {}, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & import("mongoose").FlatRecord<ReferralUsage> & {
    _id: Types.ObjectId;
} & {
    __v: number;
}>;
