import { Document, Types } from 'mongoose';
import { AppointmentStatus, AppointmentGeneratedBy } from '../../common/enums';
export type AppointmentDocument = Appointment & Document;
export declare class Appointment {
    salonId: Types.ObjectId;
    stylistId: Types.ObjectId;
    serviceId: Types.ObjectId;
    clientId: Types.ObjectId;
    offerId?: Types.ObjectId;
    start: Date;
    end: Date;
    status: AppointmentStatus;
    appointmentFee: number;
    depositAmount: number;
    remainingAmount: number;
    generatedBy: AppointmentGeneratedBy;
    payment_type: string;
    payment_status: string;
    payment_provider: string;
    payment_intent_id: string;
    amount_paid: number;
    payment_charge_id: string;
    payout_status: string;
    payout_amount: number;
    payout_currency: string;
    payout_received_amount: number;
    payout_received_currency: string;
    payout_transfer_id: string;
    payout_at?: Date;
    payout_error: string;
}
export declare const AppointmentSchema: import("mongoose").Schema<Appointment, import("mongoose").Model<Appointment, any, any, any, Document<unknown, any, Appointment, any, {}> & Appointment & {
    _id: Types.ObjectId;
} & {
    __v: number;
}, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, Appointment, Document<unknown, {}, import("mongoose").FlatRecord<Appointment>, {}, import("mongoose").DefaultSchemaOptions> & import("mongoose").FlatRecord<Appointment> & {
    _id: Types.ObjectId;
} & {
    __v: number;
}>;
