import * as React from 'react'; import { __ } from '@wordpress/i18n'; import type { FinancialState } from './settlement'; import type { BookingApi } from './api'; import { money } from './pricing'; import { formatRange } from './dateTime'; import { methodLabel, paymentLabel } from './credit'; import { statusLabel } from './Bookings'; export interface OutstandingItem { id: number; reference: string; starts_at: string; ends_at: string; due_at: string; resource_name: string; final_amount: number; currency: string; financial: FinancialState; status: string; payment_method: string | null; } export interface OutstandingBalance { blocked: boolean; amounts_by_currency: Record; items: OutstandingItem[]; timezone: string; total?: number; } export function Amounts({ amounts }: { amounts: Record; }) { return ; } export function OutstandingTable({ items, timezone, onDetail, admin = false }: { items: OutstandingItem[]; timezone: string; onDetail: (id: number) => void; admin?: boolean; }) { return
{[__('Reference', 'abece-booking'), __('Date and time', 'abece-booking'), __('Resource', 'abece-booking'), __('Original booking price', 'abece-booking'), __('Amount due', 'abece-booking'), __('Paid', 'abece-booking'), __('Outstanding', 'abece-booking'), __('Status', 'abece-booking'), ...(admin ? [__('Payment method', 'abece-booking'), __('Payment status', 'abece-booking')] : []), __('Actions', 'abece-booking')].map(t => )}{items.map(b => {admin && <>})}
{t}
{b.reference}{formatRange(b.starts_at, b.ends_at, timezone)}{b.resource_name}{money(b.final_amount, b.currency)}{money(b.financial.required_amount, b.currency)}{money(b.financial.net_paid_amount, b.currency)}{money(b.financial.outstanding_amount, b.currency)}{statusLabel(b.status)}{methodLabel(b.payment_method)}{paymentLabel(b.financial.payment_status)}
; } export declare function ClientOutstanding(props: { api: BookingApi; balance: OutstandingBalance | null; onRefresh: () => void; }): React.JSX.Element;