import { Document, Types } from 'mongoose';
import { BillingCycle } from './plan.schema';
export declare enum payment_status {
    PENDING = "PENDING",
    SUCCESS = "SUCCESS",
    FAILED = "FAILED"
}
export declare enum PaymentSource {
    STRIPE = "stripe",
    RAZORPAY = "razorpay",
    APPLE = "apple",
    ANDROID = "android"
}
export declare enum SubscriptionType {
    RECURRING = "recurring",
    ONE_TIME = "one_time"
}
export declare class Subscription extends Document {
    payment_source: PaymentSource;
    subscription_type: SubscriptionType;
    user_id: Types.ObjectId;
    plan_id: Types.ObjectId;
    payment_status: string;
    amount: number;
    razorpay_subscription_id: string;
    purchase_date: number;
    expire_date: number;
    status: string;
    is_expire: boolean;
    is_cancel: boolean;
    billing_cycle: BillingCycle;
    vehicle_count: number;
    current_amount: number;
    current_cycle_start_date: number;
    current_cycle_end_date: number;
    credit_balance: number;
}
export declare const SubscriptionSchema: import("mongoose").Schema<Subscription, import("mongoose").Model<Subscription, any, any, any, Document<unknown, any, Subscription, any> & Subscription & Required<{
    _id: unknown;
}> & {
    __v: number;
}, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, Subscription, Document<unknown, {}, import("mongoose").FlatRecord<Subscription>, {}> & import("mongoose").FlatRecord<Subscription> & Required<{
    _id: unknown;
}> & {
    __v: number;
}>;
