import { HydratedDocument, Types } from "mongoose";
import * as mongoose from "mongoose";
import { OrderDeliver, OrderSubscriptionStatus, OrderSubscriptionType } from "../dto/order.dto";
import { AddAddress, FoodItem, GuestDetail, OrderStatus, OrderType, PaymentStatus, PaymentType, ReceiverDetail, RiderStatus } from "./order.schema";
export declare class SubscribeOrder {
    restaurant_id: string;
    customer_id: string;
    driver_id: string;
    coupon_id: string;
    order_id: string;
    cart_items: FoodItem[];
    delivery_address: AddAddress;
    note_for_restaurant: string;
    add_delivery_instruction: string;
    add_receiver_detail: ReceiverDetail;
    add_guest_detail: GuestDetail;
    order_type: OrderType;
    order_status: OrderStatus;
    rider_status: RiderStatus;
    payment_type: PaymentType;
    payment_status: PaymentStatus;
    more_time_required_at: number;
    add_more_time: number;
    order_placed_at: number;
    order_confirmed_at: number;
    order_prepared_at: number;
    order_ready_at: number;
    order_picked_up_at: number;
    order_delivered_at: number;
    order_count_for_restaurant: number;
    estimated_food_ready_time: number;
    estimated_delivery_time: number;
    distance: number;
    cart_amount: number;
    restaurant_rating: number;
    driver_rating: number;
    coupon_amount: number;
    delivery_fee: number;
    platform_fee: number;
    sales_commission: number;
    tax_amount: number;
    total_amount: number;
    delivered_at: number;
    refund_at: Date;
    order_open_for: mongoose.Schema.Types.ObjectId[];
    delivery_otp: string;
    otp_sent_at: number;
    tip_amount: number;
    scheduled_time: Date;
    is_open_for_driver: boolean;
    razorpay_order_id: string;
    created_at: number;
    updated_at: number;
    deliver_type: OrderDeliver;
    subscription_type: OrderSubscriptionType;
    subscription_monthly: number[];
    subscription_weekly: string[];
    order_time: Date;
    order_time_in_minutes: number;
    subscription_status: OrderSubscriptionStatus;
}
export type SubscribeOrderDocument = HydratedDocument<SubscribeOrder>;
export declare const SubscribeOrderModel: mongoose.Schema<SubscribeOrder, mongoose.Model<SubscribeOrder, any, any, any, mongoose.Document<unknown, any, SubscribeOrder, any, {}> & SubscribeOrder & {
    _id: Types.ObjectId;
} & {
    __v: number;
}, any>, {}, {}, {}, {}, mongoose.DefaultSchemaOptions, SubscribeOrder, mongoose.Document<unknown, {}, mongoose.FlatRecord<SubscribeOrder>, {}, mongoose.ResolveSchemaOptions<mongoose.DefaultSchemaOptions>> & mongoose.FlatRecord<SubscribeOrder> & {
    _id: Types.ObjectId;
} & {
    __v: number;
}>;
