import { HydratedDocument, Types } from 'mongoose';
export declare enum ReferralRewardStatus {
    PENDING = "PENDING",
    QUALIFIED = "QUALIFIED",
    REWARDED = "REWARDED",
    EXPIRED = "EXPIRED",
    CANCELLED = "CANCELLED"
}
export declare class ReferralTracking {
    referrer_id: Types.ObjectId;
    referred_user_id: Types.ObjectId;
    referral_code: string;
    status: ReferralRewardStatus;
    completed_orders: number;
    required_orders: number;
    referral_date: number;
    expiry_date: number;
    reward_date: number;
    reward_amount: number;
    time_limit_days: number;
    last_order_date: number;
    is_reward_given: boolean;
    instant_reward_given: boolean;
    notes: string;
    is_deleted: boolean;
}
export type ReferralTrackingDocument = HydratedDocument<ReferralTracking>;
export declare const ReferralTrackingSchema: import("mongoose").Schema<ReferralTracking, import("mongoose").Model<ReferralTracking, any, any, any, import("mongoose").Document<unknown, any, ReferralTracking, any> & ReferralTracking & {
    _id: Types.ObjectId;
} & {
    __v: number;
}, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, ReferralTracking, import("mongoose").Document<unknown, {}, import("mongoose").FlatRecord<ReferralTracking>, {}> & import("mongoose").FlatRecord<ReferralTracking> & {
    _id: Types.ObjectId;
} & {
    __v: number;
}>;
