import { OrdersService } from './orders.service';
export declare class OrdersController {
    private readonly ordersService;
    constructor(ordersService: OrdersService);
    list(req: {
        user: {
            sub: string;
            role: string;
        };
    }): import("@prisma/client").Prisma.PrismaPromise<({
        delivery: ({
            driver: ({
                user: {
                    id: string;
                    status: import("@prisma/client").$Enums.AccountStatus;
                    createdAt: Date;
                    updatedAt: Date;
                    email: string | null;
                    phone: string | null;
                    passwordHash: string;
                    role: import("@prisma/client").$Enums.UserRole;
                    emailVerifiedAt: Date | null;
                    phoneVerifiedAt: Date | null;
                };
            } & {
                id: string;
                status: import("@prisma/client").$Enums.AccountStatus;
                createdAt: Date;
                updatedAt: Date;
                userId: string;
                documentNumber: string;
                pixKey: string | null;
                fullName: string;
                avatarUrl: string | null;
                rating: import("@prisma/client/runtime/library").Decimal;
                cnhUrl: string | null;
                vehicleDocumentUrl: string | null;
                vehiclePlate: string | null;
                vehicleModel: string | null;
                isOnline: boolean;
            }) | null;
        } & {
            id: string;
            status: import("@prisma/client").$Enums.DeliveryStatus;
            createdAt: Date;
            updatedAt: Date;
            orderId: string;
            driverId: string | null;
            pricePerKm: import("@prisma/client/runtime/library").Decimal;
            distanceKm: import("@prisma/client/runtime/library").Decimal | null;
            etaMinutes: number | null;
            baseFee: import("@prisma/client/runtime/library").Decimal;
            deliveryFeeCustomer: import("@prisma/client/runtime/library").Decimal;
            driverEarning: import("@prisma/client/runtime/library").Decimal;
            platformDeliveryProfit: import("@prisma/client/runtime/library").Decimal;
            demandMultiplier: import("@prisma/client/runtime/library").Decimal;
            weatherMultiplier: import("@prisma/client/runtime/library").Decimal;
            surgeMultiplier: import("@prisma/client/runtime/library").Decimal;
            bonusAmount: import("@prisma/client/runtime/library").Decimal;
            rainBonus: import("@prisma/client/runtime/library").Decimal;
            peakBonus: import("@prisma/client/runtime/library").Decimal;
            tipsAmount: import("@prisma/client/runtime/library").Decimal;
            proofImageUrl: string | null;
            pickedUpAt: Date | null;
            deliveredAt: Date | null;
        }) | null;
        address: {
            number: string;
            id: string;
            createdAt: Date;
            updatedAt: Date;
            userId: string;
            street: string;
            complement: string | null;
            state: string;
            zipCode: string;
            latitude: import("@prisma/client/runtime/library").Decimal | null;
            longitude: import("@prisma/client/runtime/library").Decimal | null;
            city: string;
            neighborhood: string;
            label: string;
            isDefault: boolean;
        } | null;
        customer: {
            user: {
                id: string;
                status: import("@prisma/client").$Enums.AccountStatus;
                createdAt: Date;
                updatedAt: Date;
                email: string | null;
                phone: string | null;
                passwordHash: string;
                role: import("@prisma/client").$Enums.UserRole;
                emailVerifiedAt: Date | null;
                phoneVerifiedAt: Date | null;
            };
        } & {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            userId: string;
            fullName: string;
            avatarUrl: string | null;
            defaultAddressId: string | null;
        };
        restaurant: {
            number: string | null;
            id: string;
            status: import("@prisma/client").$Enums.AccountStatus;
            createdAt: Date;
            updatedAt: Date;
            name: string;
            description: string | null;
            userId: string;
            slug: string;
            documentNumber: string;
            pixKey: string | null;
            street: string | null;
            complement: string | null;
            state: string | null;
            zipCode: string | null;
            commissionPercentage: import("@prisma/client/runtime/library").Decimal;
            serviceFeePercentage: import("@prisma/client/runtime/library").Decimal;
            baseDeliveryFee: import("@prisma/client/runtime/library").Decimal;
            pricePerKm: import("@prisma/client/runtime/library").Decimal;
            latitude: import("@prisma/client/runtime/library").Decimal | null;
            longitude: import("@prisma/client/runtime/library").Decimal | null;
            city: string | null;
            neighborhood: string | null;
            acceptsCashOnDelivery: boolean;
            isOpen: boolean;
            isPaused: boolean;
            companyContractUrl: string | null;
            businessLicenseUrl: string | null;
            ownerDocumentUrl: string | null;
            bankProofUrl: string | null;
            documentReviewNotes: string | null;
            documentsSubmittedAt: Date | null;
            approvedAt: Date | null;
            rejectedAt: Date | null;
            coverImageUrl: string | null;
            logoUrl: string | null;
        };
        items: ({
            product: {
                id: string;
                restaurantId: string;
                createdAt: Date;
                updatedAt: Date;
                categoryId: string | null;
                name: string;
                description: string | null;
                imageUrl: string | null;
                price: import("@prisma/client/runtime/library").Decimal;
                isActive: boolean;
            };
        } & {
            id: string;
            notes: string | null;
            orderId: string;
            productId: string;
            quantity: number;
            unitPrice: import("@prisma/client/runtime/library").Decimal;
            totalPrice: import("@prisma/client/runtime/library").Decimal;
        })[];
        payment: {
            id: string;
            status: import("@prisma/client").$Enums.PaymentStatus;
            createdAt: Date;
            updatedAt: Date;
            orderId: string;
            method: import("@prisma/client").$Enums.PaymentMethod;
            externalReference: string | null;
            amount: import("@prisma/client/runtime/library").Decimal;
        } | null;
    } & {
        id: string;
        customerId: string;
        restaurantId: string;
        addressId: string | null;
        couponId: string | null;
        status: import("@prisma/client").$Enums.OrderStatus;
        subtotal: import("@prisma/client/runtime/library").Decimal;
        deliveryFee: import("@prisma/client/runtime/library").Decimal;
        serviceFee: import("@prisma/client/runtime/library").Decimal;
        discountAmount: import("@prisma/client/runtime/library").Decimal;
        total: import("@prisma/client/runtime/library").Decimal;
        notes: string | null;
        createdAt: Date;
        updatedAt: Date;
    })[]>;
    getRestaurantFlowSettings(req: {
        user: {
            sub: string;
        };
    }): Promise<{
        acceptMode: "MANUAL" | "AUTOMATIC";
        autoRequestDeliveryWhenReady: boolean;
        driverPresenceWindowMinutes: number;
    }>;
    updateRestaurantFlowSettings(req: {
        user: {
            sub: string;
        };
    }, body: {
        acceptMode?: 'MANUAL' | 'AUTOMATIC';
        autoRequestDeliveryWhenReady?: boolean;
        driverPresenceWindowMinutes?: number;
    }): Promise<{
        acceptMode: "MANUAL" | "AUTOMATIC";
        autoRequestDeliveryWhenReady: boolean;
        driverPresenceWindowMinutes: number;
    }>;
    acceptByRestaurant(req: {
        user: {
            sub: string;
            role: string;
        };
    }, id: string): Promise<{
        delivery: ({
            driver: ({
                user: {
                    id: string;
                    status: import("@prisma/client").$Enums.AccountStatus;
                    createdAt: Date;
                    updatedAt: Date;
                    email: string | null;
                    phone: string | null;
                    passwordHash: string;
                    role: import("@prisma/client").$Enums.UserRole;
                    emailVerifiedAt: Date | null;
                    phoneVerifiedAt: Date | null;
                };
            } & {
                id: string;
                status: import("@prisma/client").$Enums.AccountStatus;
                createdAt: Date;
                updatedAt: Date;
                userId: string;
                documentNumber: string;
                pixKey: string | null;
                fullName: string;
                avatarUrl: string | null;
                rating: import("@prisma/client/runtime/library").Decimal;
                cnhUrl: string | null;
                vehicleDocumentUrl: string | null;
                vehiclePlate: string | null;
                vehicleModel: string | null;
                isOnline: boolean;
            }) | null;
        } & {
            id: string;
            status: import("@prisma/client").$Enums.DeliveryStatus;
            createdAt: Date;
            updatedAt: Date;
            orderId: string;
            driverId: string | null;
            pricePerKm: import("@prisma/client/runtime/library").Decimal;
            distanceKm: import("@prisma/client/runtime/library").Decimal | null;
            etaMinutes: number | null;
            baseFee: import("@prisma/client/runtime/library").Decimal;
            deliveryFeeCustomer: import("@prisma/client/runtime/library").Decimal;
            driverEarning: import("@prisma/client/runtime/library").Decimal;
            platformDeliveryProfit: import("@prisma/client/runtime/library").Decimal;
            demandMultiplier: import("@prisma/client/runtime/library").Decimal;
            weatherMultiplier: import("@prisma/client/runtime/library").Decimal;
            surgeMultiplier: import("@prisma/client/runtime/library").Decimal;
            bonusAmount: import("@prisma/client/runtime/library").Decimal;
            rainBonus: import("@prisma/client/runtime/library").Decimal;
            peakBonus: import("@prisma/client/runtime/library").Decimal;
            tipsAmount: import("@prisma/client/runtime/library").Decimal;
            proofImageUrl: string | null;
            pickedUpAt: Date | null;
            deliveredAt: Date | null;
        }) | null;
        address: {
            number: string;
            id: string;
            createdAt: Date;
            updatedAt: Date;
            userId: string;
            street: string;
            complement: string | null;
            state: string;
            zipCode: string;
            latitude: import("@prisma/client/runtime/library").Decimal | null;
            longitude: import("@prisma/client/runtime/library").Decimal | null;
            city: string;
            neighborhood: string;
            label: string;
            isDefault: boolean;
        } | null;
        customer: {
            user: {
                id: string;
                status: import("@prisma/client").$Enums.AccountStatus;
                createdAt: Date;
                updatedAt: Date;
                email: string | null;
                phone: string | null;
                passwordHash: string;
                role: import("@prisma/client").$Enums.UserRole;
                emailVerifiedAt: Date | null;
                phoneVerifiedAt: Date | null;
            };
        } & {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            userId: string;
            fullName: string;
            avatarUrl: string | null;
            defaultAddressId: string | null;
        };
        restaurant: {
            user: {
                id: string;
                status: import("@prisma/client").$Enums.AccountStatus;
                createdAt: Date;
                updatedAt: Date;
                email: string | null;
                phone: string | null;
                passwordHash: string;
                role: import("@prisma/client").$Enums.UserRole;
                emailVerifiedAt: Date | null;
                phoneVerifiedAt: Date | null;
            };
        } & {
            number: string | null;
            id: string;
            status: import("@prisma/client").$Enums.AccountStatus;
            createdAt: Date;
            updatedAt: Date;
            name: string;
            description: string | null;
            userId: string;
            slug: string;
            documentNumber: string;
            pixKey: string | null;
            street: string | null;
            complement: string | null;
            state: string | null;
            zipCode: string | null;
            commissionPercentage: import("@prisma/client/runtime/library").Decimal;
            serviceFeePercentage: import("@prisma/client/runtime/library").Decimal;
            baseDeliveryFee: import("@prisma/client/runtime/library").Decimal;
            pricePerKm: import("@prisma/client/runtime/library").Decimal;
            latitude: import("@prisma/client/runtime/library").Decimal | null;
            longitude: import("@prisma/client/runtime/library").Decimal | null;
            city: string | null;
            neighborhood: string | null;
            acceptsCashOnDelivery: boolean;
            isOpen: boolean;
            isPaused: boolean;
            companyContractUrl: string | null;
            businessLicenseUrl: string | null;
            ownerDocumentUrl: string | null;
            bankProofUrl: string | null;
            documentReviewNotes: string | null;
            documentsSubmittedAt: Date | null;
            approvedAt: Date | null;
            rejectedAt: Date | null;
            coverImageUrl: string | null;
            logoUrl: string | null;
        };
        items: ({
            product: {
                id: string;
                restaurantId: string;
                createdAt: Date;
                updatedAt: Date;
                categoryId: string | null;
                name: string;
                description: string | null;
                imageUrl: string | null;
                price: import("@prisma/client/runtime/library").Decimal;
                isActive: boolean;
            };
        } & {
            id: string;
            notes: string | null;
            orderId: string;
            productId: string;
            quantity: number;
            unitPrice: import("@prisma/client/runtime/library").Decimal;
            totalPrice: import("@prisma/client/runtime/library").Decimal;
        })[];
        payment: {
            id: string;
            status: import("@prisma/client").$Enums.PaymentStatus;
            createdAt: Date;
            updatedAt: Date;
            orderId: string;
            method: import("@prisma/client").$Enums.PaymentMethod;
            externalReference: string | null;
            amount: import("@prisma/client/runtime/library").Decimal;
        } | null;
    } & {
        id: string;
        customerId: string;
        restaurantId: string;
        addressId: string | null;
        couponId: string | null;
        status: import("@prisma/client").$Enums.OrderStatus;
        subtotal: import("@prisma/client/runtime/library").Decimal;
        deliveryFee: import("@prisma/client/runtime/library").Decimal;
        serviceFee: import("@prisma/client/runtime/library").Decimal;
        discountAmount: import("@prisma/client/runtime/library").Decimal;
        total: import("@prisma/client/runtime/library").Decimal;
        notes: string | null;
        createdAt: Date;
        updatedAt: Date;
    }>;
    markReady(req: {
        user: {
            sub: string;
            role: string;
        };
    }, id: string): Promise<{
        delivery: ({
            driver: ({
                user: {
                    id: string;
                    status: import("@prisma/client").$Enums.AccountStatus;
                    createdAt: Date;
                    updatedAt: Date;
                    email: string | null;
                    phone: string | null;
                    passwordHash: string;
                    role: import("@prisma/client").$Enums.UserRole;
                    emailVerifiedAt: Date | null;
                    phoneVerifiedAt: Date | null;
                };
            } & {
                id: string;
                status: import("@prisma/client").$Enums.AccountStatus;
                createdAt: Date;
                updatedAt: Date;
                userId: string;
                documentNumber: string;
                pixKey: string | null;
                fullName: string;
                avatarUrl: string | null;
                rating: import("@prisma/client/runtime/library").Decimal;
                cnhUrl: string | null;
                vehicleDocumentUrl: string | null;
                vehiclePlate: string | null;
                vehicleModel: string | null;
                isOnline: boolean;
            }) | null;
        } & {
            id: string;
            status: import("@prisma/client").$Enums.DeliveryStatus;
            createdAt: Date;
            updatedAt: Date;
            orderId: string;
            driverId: string | null;
            pricePerKm: import("@prisma/client/runtime/library").Decimal;
            distanceKm: import("@prisma/client/runtime/library").Decimal | null;
            etaMinutes: number | null;
            baseFee: import("@prisma/client/runtime/library").Decimal;
            deliveryFeeCustomer: import("@prisma/client/runtime/library").Decimal;
            driverEarning: import("@prisma/client/runtime/library").Decimal;
            platformDeliveryProfit: import("@prisma/client/runtime/library").Decimal;
            demandMultiplier: import("@prisma/client/runtime/library").Decimal;
            weatherMultiplier: import("@prisma/client/runtime/library").Decimal;
            surgeMultiplier: import("@prisma/client/runtime/library").Decimal;
            bonusAmount: import("@prisma/client/runtime/library").Decimal;
            rainBonus: import("@prisma/client/runtime/library").Decimal;
            peakBonus: import("@prisma/client/runtime/library").Decimal;
            tipsAmount: import("@prisma/client/runtime/library").Decimal;
            proofImageUrl: string | null;
            pickedUpAt: Date | null;
            deliveredAt: Date | null;
        }) | null;
        address: {
            number: string;
            id: string;
            createdAt: Date;
            updatedAt: Date;
            userId: string;
            street: string;
            complement: string | null;
            state: string;
            zipCode: string;
            latitude: import("@prisma/client/runtime/library").Decimal | null;
            longitude: import("@prisma/client/runtime/library").Decimal | null;
            city: string;
            neighborhood: string;
            label: string;
            isDefault: boolean;
        } | null;
        customer: {
            user: {
                id: string;
                status: import("@prisma/client").$Enums.AccountStatus;
                createdAt: Date;
                updatedAt: Date;
                email: string | null;
                phone: string | null;
                passwordHash: string;
                role: import("@prisma/client").$Enums.UserRole;
                emailVerifiedAt: Date | null;
                phoneVerifiedAt: Date | null;
            };
        } & {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            userId: string;
            fullName: string;
            avatarUrl: string | null;
            defaultAddressId: string | null;
        };
        restaurant: {
            user: {
                id: string;
                status: import("@prisma/client").$Enums.AccountStatus;
                createdAt: Date;
                updatedAt: Date;
                email: string | null;
                phone: string | null;
                passwordHash: string;
                role: import("@prisma/client").$Enums.UserRole;
                emailVerifiedAt: Date | null;
                phoneVerifiedAt: Date | null;
            };
        } & {
            number: string | null;
            id: string;
            status: import("@prisma/client").$Enums.AccountStatus;
            createdAt: Date;
            updatedAt: Date;
            name: string;
            description: string | null;
            userId: string;
            slug: string;
            documentNumber: string;
            pixKey: string | null;
            street: string | null;
            complement: string | null;
            state: string | null;
            zipCode: string | null;
            commissionPercentage: import("@prisma/client/runtime/library").Decimal;
            serviceFeePercentage: import("@prisma/client/runtime/library").Decimal;
            baseDeliveryFee: import("@prisma/client/runtime/library").Decimal;
            pricePerKm: import("@prisma/client/runtime/library").Decimal;
            latitude: import("@prisma/client/runtime/library").Decimal | null;
            longitude: import("@prisma/client/runtime/library").Decimal | null;
            city: string | null;
            neighborhood: string | null;
            acceptsCashOnDelivery: boolean;
            isOpen: boolean;
            isPaused: boolean;
            companyContractUrl: string | null;
            businessLicenseUrl: string | null;
            ownerDocumentUrl: string | null;
            bankProofUrl: string | null;
            documentReviewNotes: string | null;
            documentsSubmittedAt: Date | null;
            approvedAt: Date | null;
            rejectedAt: Date | null;
            coverImageUrl: string | null;
            logoUrl: string | null;
        };
        items: ({
            product: {
                id: string;
                restaurantId: string;
                createdAt: Date;
                updatedAt: Date;
                categoryId: string | null;
                name: string;
                description: string | null;
                imageUrl: string | null;
                price: import("@prisma/client/runtime/library").Decimal;
                isActive: boolean;
            };
        } & {
            id: string;
            notes: string | null;
            orderId: string;
            productId: string;
            quantity: number;
            unitPrice: import("@prisma/client/runtime/library").Decimal;
            totalPrice: import("@prisma/client/runtime/library").Decimal;
        })[];
        payment: {
            id: string;
            status: import("@prisma/client").$Enums.PaymentStatus;
            createdAt: Date;
            updatedAt: Date;
            orderId: string;
            method: import("@prisma/client").$Enums.PaymentMethod;
            externalReference: string | null;
            amount: import("@prisma/client/runtime/library").Decimal;
        } | null;
    } & {
        id: string;
        customerId: string;
        restaurantId: string;
        addressId: string | null;
        couponId: string | null;
        status: import("@prisma/client").$Enums.OrderStatus;
        subtotal: import("@prisma/client/runtime/library").Decimal;
        deliveryFee: import("@prisma/client/runtime/library").Decimal;
        serviceFee: import("@prisma/client/runtime/library").Decimal;
        discountAmount: import("@prisma/client/runtime/library").Decimal;
        total: import("@prisma/client/runtime/library").Decimal;
        notes: string | null;
        createdAt: Date;
        updatedAt: Date;
    }>;
    requestDelivery(req: {
        user: {
            sub: string;
            role: string;
        };
    }, id: string): Promise<{
        delivery: ({
            driver: ({
                user: {
                    id: string;
                    status: import("@prisma/client").$Enums.AccountStatus;
                    createdAt: Date;
                    updatedAt: Date;
                    email: string | null;
                    phone: string | null;
                    passwordHash: string;
                    role: import("@prisma/client").$Enums.UserRole;
                    emailVerifiedAt: Date | null;
                    phoneVerifiedAt: Date | null;
                };
            } & {
                id: string;
                status: import("@prisma/client").$Enums.AccountStatus;
                createdAt: Date;
                updatedAt: Date;
                userId: string;
                documentNumber: string;
                pixKey: string | null;
                fullName: string;
                avatarUrl: string | null;
                rating: import("@prisma/client/runtime/library").Decimal;
                cnhUrl: string | null;
                vehicleDocumentUrl: string | null;
                vehiclePlate: string | null;
                vehicleModel: string | null;
                isOnline: boolean;
            }) | null;
        } & {
            id: string;
            status: import("@prisma/client").$Enums.DeliveryStatus;
            createdAt: Date;
            updatedAt: Date;
            orderId: string;
            driverId: string | null;
            pricePerKm: import("@prisma/client/runtime/library").Decimal;
            distanceKm: import("@prisma/client/runtime/library").Decimal | null;
            etaMinutes: number | null;
            baseFee: import("@prisma/client/runtime/library").Decimal;
            deliveryFeeCustomer: import("@prisma/client/runtime/library").Decimal;
            driverEarning: import("@prisma/client/runtime/library").Decimal;
            platformDeliveryProfit: import("@prisma/client/runtime/library").Decimal;
            demandMultiplier: import("@prisma/client/runtime/library").Decimal;
            weatherMultiplier: import("@prisma/client/runtime/library").Decimal;
            surgeMultiplier: import("@prisma/client/runtime/library").Decimal;
            bonusAmount: import("@prisma/client/runtime/library").Decimal;
            rainBonus: import("@prisma/client/runtime/library").Decimal;
            peakBonus: import("@prisma/client/runtime/library").Decimal;
            tipsAmount: import("@prisma/client/runtime/library").Decimal;
            proofImageUrl: string | null;
            pickedUpAt: Date | null;
            deliveredAt: Date | null;
        }) | null;
        address: {
            number: string;
            id: string;
            createdAt: Date;
            updatedAt: Date;
            userId: string;
            street: string;
            complement: string | null;
            state: string;
            zipCode: string;
            latitude: import("@prisma/client/runtime/library").Decimal | null;
            longitude: import("@prisma/client/runtime/library").Decimal | null;
            city: string;
            neighborhood: string;
            label: string;
            isDefault: boolean;
        } | null;
        customer: {
            user: {
                id: string;
                status: import("@prisma/client").$Enums.AccountStatus;
                createdAt: Date;
                updatedAt: Date;
                email: string | null;
                phone: string | null;
                passwordHash: string;
                role: import("@prisma/client").$Enums.UserRole;
                emailVerifiedAt: Date | null;
                phoneVerifiedAt: Date | null;
            };
        } & {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            userId: string;
            fullName: string;
            avatarUrl: string | null;
            defaultAddressId: string | null;
        };
        restaurant: {
            user: {
                id: string;
                status: import("@prisma/client").$Enums.AccountStatus;
                createdAt: Date;
                updatedAt: Date;
                email: string | null;
                phone: string | null;
                passwordHash: string;
                role: import("@prisma/client").$Enums.UserRole;
                emailVerifiedAt: Date | null;
                phoneVerifiedAt: Date | null;
            };
        } & {
            number: string | null;
            id: string;
            status: import("@prisma/client").$Enums.AccountStatus;
            createdAt: Date;
            updatedAt: Date;
            name: string;
            description: string | null;
            userId: string;
            slug: string;
            documentNumber: string;
            pixKey: string | null;
            street: string | null;
            complement: string | null;
            state: string | null;
            zipCode: string | null;
            commissionPercentage: import("@prisma/client/runtime/library").Decimal;
            serviceFeePercentage: import("@prisma/client/runtime/library").Decimal;
            baseDeliveryFee: import("@prisma/client/runtime/library").Decimal;
            pricePerKm: import("@prisma/client/runtime/library").Decimal;
            latitude: import("@prisma/client/runtime/library").Decimal | null;
            longitude: import("@prisma/client/runtime/library").Decimal | null;
            city: string | null;
            neighborhood: string | null;
            acceptsCashOnDelivery: boolean;
            isOpen: boolean;
            isPaused: boolean;
            companyContractUrl: string | null;
            businessLicenseUrl: string | null;
            ownerDocumentUrl: string | null;
            bankProofUrl: string | null;
            documentReviewNotes: string | null;
            documentsSubmittedAt: Date | null;
            approvedAt: Date | null;
            rejectedAt: Date | null;
            coverImageUrl: string | null;
            logoUrl: string | null;
        };
        items: ({
            product: {
                id: string;
                restaurantId: string;
                createdAt: Date;
                updatedAt: Date;
                categoryId: string | null;
                name: string;
                description: string | null;
                imageUrl: string | null;
                price: import("@prisma/client/runtime/library").Decimal;
                isActive: boolean;
            };
        } & {
            id: string;
            notes: string | null;
            orderId: string;
            productId: string;
            quantity: number;
            unitPrice: import("@prisma/client/runtime/library").Decimal;
            totalPrice: import("@prisma/client/runtime/library").Decimal;
        })[];
        payment: {
            id: string;
            status: import("@prisma/client").$Enums.PaymentStatus;
            createdAt: Date;
            updatedAt: Date;
            orderId: string;
            method: import("@prisma/client").$Enums.PaymentMethod;
            externalReference: string | null;
            amount: import("@prisma/client/runtime/library").Decimal;
        } | null;
    } & {
        id: string;
        customerId: string;
        restaurantId: string;
        addressId: string | null;
        couponId: string | null;
        status: import("@prisma/client").$Enums.OrderStatus;
        subtotal: import("@prisma/client/runtime/library").Decimal;
        deliveryFee: import("@prisma/client/runtime/library").Decimal;
        serviceFee: import("@prisma/client/runtime/library").Decimal;
        discountAmount: import("@prisma/client/runtime/library").Decimal;
        total: import("@prisma/client/runtime/library").Decimal;
        notes: string | null;
        createdAt: Date;
        updatedAt: Date;
    }>;
    cancel(id: string, body: {
        reason?: string;
    }): Promise<{
        delivery: ({
            driver: ({
                user: {
                    id: string;
                    status: import("@prisma/client").$Enums.AccountStatus;
                    createdAt: Date;
                    updatedAt: Date;
                    email: string | null;
                    phone: string | null;
                    passwordHash: string;
                    role: import("@prisma/client").$Enums.UserRole;
                    emailVerifiedAt: Date | null;
                    phoneVerifiedAt: Date | null;
                };
            } & {
                id: string;
                status: import("@prisma/client").$Enums.AccountStatus;
                createdAt: Date;
                updatedAt: Date;
                userId: string;
                documentNumber: string;
                pixKey: string | null;
                fullName: string;
                avatarUrl: string | null;
                rating: import("@prisma/client/runtime/library").Decimal;
                cnhUrl: string | null;
                vehicleDocumentUrl: string | null;
                vehiclePlate: string | null;
                vehicleModel: string | null;
                isOnline: boolean;
            }) | null;
        } & {
            id: string;
            status: import("@prisma/client").$Enums.DeliveryStatus;
            createdAt: Date;
            updatedAt: Date;
            orderId: string;
            driverId: string | null;
            pricePerKm: import("@prisma/client/runtime/library").Decimal;
            distanceKm: import("@prisma/client/runtime/library").Decimal | null;
            etaMinutes: number | null;
            baseFee: import("@prisma/client/runtime/library").Decimal;
            deliveryFeeCustomer: import("@prisma/client/runtime/library").Decimal;
            driverEarning: import("@prisma/client/runtime/library").Decimal;
            platformDeliveryProfit: import("@prisma/client/runtime/library").Decimal;
            demandMultiplier: import("@prisma/client/runtime/library").Decimal;
            weatherMultiplier: import("@prisma/client/runtime/library").Decimal;
            surgeMultiplier: import("@prisma/client/runtime/library").Decimal;
            bonusAmount: import("@prisma/client/runtime/library").Decimal;
            rainBonus: import("@prisma/client/runtime/library").Decimal;
            peakBonus: import("@prisma/client/runtime/library").Decimal;
            tipsAmount: import("@prisma/client/runtime/library").Decimal;
            proofImageUrl: string | null;
            pickedUpAt: Date | null;
            deliveredAt: Date | null;
        }) | null;
        customer: {
            user: {
                id: string;
                status: import("@prisma/client").$Enums.AccountStatus;
                createdAt: Date;
                updatedAt: Date;
                email: string | null;
                phone: string | null;
                passwordHash: string;
                role: import("@prisma/client").$Enums.UserRole;
                emailVerifiedAt: Date | null;
                phoneVerifiedAt: Date | null;
            };
        } & {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            userId: string;
            fullName: string;
            avatarUrl: string | null;
            defaultAddressId: string | null;
        };
        restaurant: {
            number: string | null;
            id: string;
            status: import("@prisma/client").$Enums.AccountStatus;
            createdAt: Date;
            updatedAt: Date;
            name: string;
            description: string | null;
            userId: string;
            slug: string;
            documentNumber: string;
            pixKey: string | null;
            street: string | null;
            complement: string | null;
            state: string | null;
            zipCode: string | null;
            commissionPercentage: import("@prisma/client/runtime/library").Decimal;
            serviceFeePercentage: import("@prisma/client/runtime/library").Decimal;
            baseDeliveryFee: import("@prisma/client/runtime/library").Decimal;
            pricePerKm: import("@prisma/client/runtime/library").Decimal;
            latitude: import("@prisma/client/runtime/library").Decimal | null;
            longitude: import("@prisma/client/runtime/library").Decimal | null;
            city: string | null;
            neighborhood: string | null;
            acceptsCashOnDelivery: boolean;
            isOpen: boolean;
            isPaused: boolean;
            companyContractUrl: string | null;
            businessLicenseUrl: string | null;
            ownerDocumentUrl: string | null;
            bankProofUrl: string | null;
            documentReviewNotes: string | null;
            documentsSubmittedAt: Date | null;
            approvedAt: Date | null;
            rejectedAt: Date | null;
            coverImageUrl: string | null;
            logoUrl: string | null;
        };
        items: {
            id: string;
            notes: string | null;
            orderId: string;
            productId: string;
            quantity: number;
            unitPrice: import("@prisma/client/runtime/library").Decimal;
            totalPrice: import("@prisma/client/runtime/library").Decimal;
        }[];
        payment: {
            id: string;
            status: import("@prisma/client").$Enums.PaymentStatus;
            createdAt: Date;
            updatedAt: Date;
            orderId: string;
            method: import("@prisma/client").$Enums.PaymentMethod;
            externalReference: string | null;
            amount: import("@prisma/client/runtime/library").Decimal;
        } | null;
    } & {
        id: string;
        customerId: string;
        restaurantId: string;
        addressId: string | null;
        couponId: string | null;
        status: import("@prisma/client").$Enums.OrderStatus;
        subtotal: import("@prisma/client/runtime/library").Decimal;
        deliveryFee: import("@prisma/client/runtime/library").Decimal;
        serviceFee: import("@prisma/client/runtime/library").Decimal;
        discountAmount: import("@prisma/client/runtime/library").Decimal;
        total: import("@prisma/client/runtime/library").Decimal;
        notes: string | null;
        createdAt: Date;
        updatedAt: Date;
    }>;
}
