import { Dictionary } from '@ngrx/entity' ; import { Action } from '@ngrx/store' ; import { Observable } from 'rxjs' ; import { DaffStoreFacade , DaffStateError , } from '@daffodil/core/state' ; import { DaffOrder , DaffOrderTotal , } from '@daffodil/order' ; export interface DaffOrderFacadeInterface < T extends DaffOrder = DaffOrder > extends DaffStoreFacade < Action > { loading$ : Observable < boolean > ; errors$ : Observable < DaffStateError [ ] > ; orders$ : Observable < T [ ] > ; orderIds$ : Observable < T [ 'id' ] [ ] > ; orderCount$ : Observable < number > ; orderEntities$ : Observable < Dictionary < T > > ; placedOrder$ : Observable < T > ; hasPlacedOrder$ : Observable < boolean > ; getOrder$ ( orderId ) : Observable < T > ; getTotals$ ( orderId ) : Observable < T [ 'totals' ] > ; getAppliedCodes$ ( orderId ) : Observable < T [ 'applied_codes' ] > ; getItems$ ( orderId ) : Observable < T [ 'items' ] > ; getBillingAddresses$ ( orderId ) : Observable < T [ 'billing_addresses' ] > ; getShippingAddresses$ ( orderId ) : Observable < T [ 'shipping_addresses' ] > ; getShipments$ ( orderId ) : Observable < T [ 'shipments' ] > ; getPayment$ ( orderId ) : Observable < T [ 'payment' ] > ; getInvoices$ ( orderId ) : Observable < T [ 'invoices' ] > ; getCredits$ ( orderId ) : Observable < T [ 'credits' ] > ; /**
     * The specified order's grand total.
     */ getGrandTotal$ ( orderId ) : Observable < DaffOrderTotal > ; /**
     * The specified order's subtotal.
     */ getSubtotal$ ( orderId ) : Observable < DaffOrderTotal > ; /**
     * The specified order's shipping total.
     */ getShippingTotal$ ( orderId ) : Observable < DaffOrderTotal > ; /**
     * The specified order's discount total.
     */ getDiscountTotal$ ( orderId ) : Observable < DaffOrderTotal > ; /**
     * Whether the specified order has a discount.
     */ hasDiscount$ ( orderId ) : Observable < boolean > ; /**
     * The specified order's tax total.
     */ getTaxTotal$ ( orderId ) : Observable < DaffOrderTotal > ; }