import { HydratedDocument, Types } from 'mongoose';
export declare enum PaymentType {
    credit = "credit",
    debit = "debit"
}
export declare enum PaymentStatus {
    PENDING = "pending",
    CANCEL = "cancel",
    COMPLETED = "completed",
    REFUND = "refund"
}
export declare enum PaymentGateway {
    STRIPE = "stripe",
    RAZORPAY = "razorpay"
}
export declare class Payment {
    meta_type: string;
    customer_id: Types.ObjectId;
    order_id: Types.ObjectId;
    subscription_id: string;
    subscription_url: string;
    payment_gateway: PaymentGateway;
    payment_type: PaymentType;
    transaction_id: string;
    total_amount: number;
    currency: string;
    status: PaymentStatus;
    title: string;
}
export type PaymentDocument = HydratedDocument<Payment>;
export declare const PaymentSchema: import("mongoose").Schema<Payment, import("mongoose").Model<Payment, any, any, any, import("mongoose").Document<unknown, any, Payment, any> & Payment & {
    _id: Types.ObjectId;
} & {
    __v: number;
}, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, Payment, import("mongoose").Document<unknown, {}, import("mongoose").FlatRecord<Payment>, {}> & import("mongoose").FlatRecord<Payment> & {
    _id: Types.ObjectId;
} & {
    __v: number;
}>;
