import mongoose, { Document, Types } from 'mongoose';
export type WalletTransactionDocument = WalletTransaction & Document;
export declare enum WalletType {
    MAIN_WALLET = "MAIN_WALLET",
    PROMO_WALLET = "PROMO_WALLET",
    CreditBillPayment = "credit_bill_payment",
    WalletWithdrawal = "wallet_withdrawal"
}
export declare enum WalletTxnType {
    CREDIT = "CREDIT",
    DEBIT = "DEBIT"
}
export declare enum WalletTxnCreditType {
    Point = "point",
    Referral = "referral"
}
export declare enum DebitType {
    ORDER = "ORDER",
    WITHDRAWAL = "WITHDRAWAL",
    REFUND = "REFUND"
}
export declare class WalletTransaction extends Document {
    wallet_type: WalletType;
    customer_id: Types.ObjectId | null;
    type: WalletTxnType;
    credit_type: WalletTxnCreditType;
    amount: number;
    remaining_amount: number;
    description: string;
    is_refund: boolean;
    stripe_payment_intent: string;
    tx_id: string;
    debit_type: DebitType;
    order_id: Types.ObjectId;
    sale_commission_distribution_id: Types.ObjectId;
    is_expired: boolean;
}
export declare const WalletTransactionSchema: mongoose.Schema<WalletTransaction, mongoose.Model<WalletTransaction, any, any, any, mongoose.Document<unknown, any, WalletTransaction, any, {}> & WalletTransaction & Required<{
    _id: unknown;
}> & {
    __v: number;
}, any>, {}, {}, {}, {}, mongoose.DefaultSchemaOptions, WalletTransaction, mongoose.Document<unknown, {}, mongoose.FlatRecord<WalletTransaction>, {}, mongoose.ResolveSchemaOptions<mongoose.DefaultSchemaOptions>> & mongoose.FlatRecord<WalletTransaction> & Required<{
    _id: unknown;
}> & {
    __v: number;
}>;
export declare const WalletTransactionUsageModel: mongoose.Schema<WalletTransaction, mongoose.Model<WalletTransaction, any, any, any, mongoose.Document<unknown, any, WalletTransaction, any, {}> & WalletTransaction & Required<{
    _id: unknown;
}> & {
    __v: number;
}, any>, {}, {}, {}, {}, mongoose.DefaultSchemaOptions, WalletTransaction, mongoose.Document<unknown, {}, mongoose.FlatRecord<WalletTransaction>, {}, mongoose.ResolveSchemaOptions<mongoose.DefaultSchemaOptions>> & mongoose.FlatRecord<WalletTransaction> & Required<{
    _id: unknown;
}> & {
    __v: number;
}>;
