import { AutoEncoder, AutoEncoderPatchType } from '@simonbackx/simple-encoding'; import { BalanceItemWithPayments, BalanceItemWithPrivatePayments } from '../BalanceItem.js'; import { EmailRecipient } from '../email/Email.js'; import { Recipient } from '../endpoints/EmailRequest.js'; import { Payment, PrivatePayment } from '../members/Payment.js'; import { Organization } from '../Organization.js'; import { PaymentMethod } from '../PaymentMethod.js'; import { Checkout } from './Checkout.js'; import { TicketPrivate } from './Ticket.js'; import { WebshopPreview } from './Webshop.js'; export declare enum OrderStatusV103 { Created = "Created", Prepared = "Prepared", Completed = "Completed", Canceled = "Canceled" } export declare enum OrderStatusV137 { Created = "Created", Prepared = "Prepared", Collect = "Collect", Completed = "Completed", Canceled = "Canceled" } export declare enum OrderStatus { Created = "Created", Prepared = "Prepared", Collect = "Collect", Completed = "Completed", Canceled = "Canceled", Deleted = "Deleted" } export declare class OrderStatusHelper { static getName(status: OrderStatus): string; static getColor(status: OrderStatus): string; } export declare class OrderData extends Checkout { consumerLanguage: string; comments: string; paymentMethod: PaymentMethod; get shouldSendPaymentUpdates(): boolean; get locationName(): string; /** * Delete the personal data associated with an order when you delete an order. * We still need the other data (e.g. to inform other clients about a deleted order) * And also to match online payments and handle refunds if needed */ removePersonalData(): void; } export declare class Order extends AutoEncoder { id: string; webshopId: string; number: number | null; data: OrderData; balanceItems: BalanceItemWithPayments[]; /** * @deprecated: replaced by balance items */ payment: Payment | null; createdAt: Date; updatedAt: Date; validAt: Date | null; status: OrderStatus; get shouldIncludeStock(): boolean; get pricePaid(): number; get totalToPay(): number; get openBalance(): number; updatePricePaid(): void; get payments(): Payment[]; get paidAt(): Date; getHTMLTable(): string; getDetailsHTMLTable(webshop: WebshopPreview): string; getEmailRecipient(organization: Organization, webshop: WebshopPreview): EmailRecipient; getRecipient(organization: Organization, webshop: WebshopPreview, payment?: Payment): Recipient; private getRecipientReplacements; } export declare class PrivateOrder extends Order { /** * @deprecated */ payment: PrivatePayment | null; balanceItems: BalanceItemWithPrivatePayments[]; get payments(): PrivatePayment[]; } type TicketScanStatus = 'none' | 'all' | 'partial'; export declare class PrivateOrderWithTickets extends PrivateOrder { tickets: TicketPrivate[]; get ticketScanStatus(): TicketScanStatus; /** * Date first ticket was scanned at. */ get ticketScannedAt(): Date; /** * Adds or removes tickets as appropriate */ addTickets(tickets: TicketPrivate[]): void; addTicketPatches(patches: AutoEncoderPatchType[]): void; static addTicketPatches(orders: PrivateOrderWithTickets[], patches: AutoEncoderPatchType[]): void; } export declare class OrderResponse extends AutoEncoder { paymentUrl: string | null; /** * Data to put in a QR-code */ paymentQRCode: string | null; order: Order; } export {}; //# sourceMappingURL=Order.d.ts.map