import { BillingCapabilities, BillingCatalogRelation, BillingCheckout, BillingInvoice, BillingOperation, BillingOperationCapabilityReason, BillingPage, BillingPrice, BillingPricePort, BillingProduct, BillingProductPort, BillingSelfCheckoutCreateInput, BillingSelfPaymentView, BillingSelfPort, BillingSelfSubscriptionChangeInput, BillingSelfSubscriptionChangeOperation, BillingSelfSubscriptionChangeResult, BillingSelfSubscriptionEnrollInput, BillingSelfSubscriptionEnrollResult, BillingSubscription } from '@xylex-group/athena/billing'; import { BillingFeatureState } from './billing-feature-state.js'; /** Customer checkout payload, including composed catalog lines. */ export type CustomerSelfCheckoutCreateInput = BillingSelfCheckoutCreateInput & { lines?: readonly { priceId: string; quantity?: number; }[]; }; export interface CustomerBillingApi { catalog?: { prices?: Pick; products?: Pick; relations?: { list: (input?: object) => Promise>; }; }; getCapabilities?: (input?: Record) => Promise; self?: BillingSelfPort; } export interface CustomerBillingOperationState { reason?: BillingOperationCapabilityReason; status: "available" | "forbidden" | "unavailable"; } export declare function resolveCustomerBillingOperationState(capabilities: BillingCapabilities | null | undefined, operation: BillingOperation): CustomerBillingOperationState; export declare function useCustomerBillingApi(): CustomerBillingApi | null; export declare function useBillingCapabilities(): { canQuery: boolean; query: import('../../../lib/query/tanstack.js').AthenaQueryResult; }; export declare function useBillingProducts(options?: { enabled?: boolean; }): import('../../../lib/query/tanstack.js').AthenaQueryResult<{ items: BillingProduct[]; }, unknown> & { available: boolean; }; export declare function useBillingPrices(options?: { enabled?: boolean; productId?: string; }): import('../../../lib/query/tanstack.js').AthenaQueryResult<{ items: BillingPrice[]; }, unknown> & { available: boolean; }; export declare function useBillingRelations(options?: { enabled?: boolean; }): import('../../../lib/query/tanstack.js').AthenaQueryResult<{ items: BillingCatalogRelation[]; }, unknown> & { available: boolean; }; export declare function useBillingCatalogPlans(options?: { enabled?: boolean; }): { available: boolean; featureState: BillingFeatureState; plans: import('./billing-plan-view-model.js').BillingPlanViewModel[]; refetch: () => Promise; }; export declare function useCustomerSubscription(options?: { enabled?: boolean; }): import('../../../lib/query/tanstack.js').AthenaQueryResult<{ subscription: BillingSubscription | null; }, Error> & { available: boolean; capabilityState: CustomerBillingOperationState; }; export declare function useCustomerPayments(options?: { enabled?: boolean; limit?: number; }): import('../../../lib/query/tanstack.js').AthenaQueryResult<{ items: BillingSelfPaymentView[]; }, Error> & { available: boolean; capabilityState: CustomerBillingOperationState; }; export declare function useCustomerInvoices(options?: { enabled?: boolean; }): import('../../../lib/query/tanstack.js').AthenaQueryResult<{ items: BillingInvoice[]; }, Error> & { available: boolean; capabilityState: CustomerBillingOperationState; }; export declare function useCreateCheckout(): import('../../../lib/query/tanstack.js').AthenaMutationResult & { available: boolean; }; export declare function useEnrollSubscription(): import('../../../lib/query/tanstack.js').AthenaMutationResult & { available: boolean; }; export declare function useChangeSubscription(): import('../../../lib/query/tanstack.js').AthenaMutationResult & { available: boolean; }; export declare function useCancelSubscription(): import('../../../lib/query/tanstack.js').AthenaMutationResult & { available: boolean; }; export declare function usePlanChangeOperation(operationId?: string): import('../../../lib/query/tanstack.js').AthenaQueryResult & { available: boolean; };