import { SupportedToken } from './token';
export type PayerType = 'customer_wallet' | 'merchant_wallet';
export declare enum InvoiceStatus {
    PENDING = "pending",
    CONFIRMED = "confirmed",
    EXPIRED = "expired",
    ERROR = "error"
}
export interface Invoice {
    id?: string;
    receivingMerchantId?: string;
    merchantId?: string;
    payerType?: PayerType;
    payerMerchantId?: string | null;
    description?: string;
    amount?: number | string;
    splTokenAddress?: string;
    token?: SupportedToken;
    status?: 'pending' | 'paid' | 'expired';
    referenceKey?: string;
    paymentUrl?: string;
    qrCode?: string;
    expiresAt?: string | Date;
    createdAt?: Date;
    updatedAt?: Date;
}
export interface CreateInvoiceFromProductPayload {
    productId: string;
    payerType: PayerType;
    payerMerchantId?: string;
}
export interface CreateCustomInvoicePayload {
    description: string;
    amount: string;
    token?: SupportedToken;
    splTokenAddress?: string;
    payerType: PayerType;
    payerMerchantId?: string;
}
export type CreateInvoicePayload = CreateInvoiceFromProductPayload | CreateCustomInvoicePayload;
//# sourceMappingURL=invoice.d.ts.map