import { Ref } from '@vue/composition-api'; export declare const productFragment: import("graphql").DocumentNode; export declare const productOptionFragment: import("graphql").DocumentNode; export interface Product { name: string; label: string; description?: string; mainImage?: string; includedOptions?: string[]; recurring: boolean; enabled: boolean; hidden: boolean; currencies: string[]; prices: ProductPrice[]; options: ProductOption[]; info?: any; } export interface ProductPrice { name: string; label?: string; description?: string; bannerMessage?: string; enabled: boolean; highlighted?: boolean; tokens?: ProductPriceToken[]; basePrice: any; yearlyPrice?: any; promoCodes?: PromoCode[]; defaultPromoCode?: string; } export interface PromoCode { name: string; value: string; field: 'totalPrice' | 'basePrice'; modifier: string; maxUser?: number; info?: any; } export interface ProductPriceToken { name: string; count?: number; unlimited?: boolean; } export interface ProductOption { name: string; label: string; description?: string; basePrice: any; tokens?: string[]; info?: any; } export interface UseProductsOptions { query?: 'products' | 'recurringProducts' | 'oneTimeProducts'; productFragment?: string; productOptionFragment?: string; } export declare function useProducts(options?: UseProductsOptions): { products: Ref; result: Ref; loading: Ref; networkStatus: Ref; error: Ref; start: () => void; stop: () => void; restart: () => void; document: Ref; variables: Ref; options: import("@vue/apollo-composable").UseQueryOptions | Ref>; query: Ref>; refetch: (variables?: undefined) => Promise>; fetchMore: (options: import("apollo-client").FetchMoreQueryOptions & import("apollo-client").FetchMoreOptions) => Promise>; subscribeToMore: (options: import("apollo-client").SubscribeToMoreOptions | Ref> | import("@vue/apollo-composable/dist/util/ReactiveFunction").ReactiveFunction>) => void; onResult: (fn: (param?: import("apollo-client").ApolloQueryResult) => void) => { off: () => void; }; onError: (fn: (param?: Error) => void) => { off: () => void; }; }; export interface UseProductOptions { productFragment?: string; productOptionFragment?: string; } export declare function useProduct(name: Ref, options?: UseProductOptions): { product: Ref; hasYearlyPrice: import("@vue/composition-api").ComputedRef; result: Ref; loading: Ref; networkStatus: Ref; error: Ref; start: () => void; stop: () => void; restart: () => void; document: Ref; variables: Ref<() => { name: string; }>; options: import("@vue/apollo-composable").UseQueryOptions { name: string; }> | Ref { name: string; }>>; query: Ref { name: string; }>>; refetch: (variables?: () => { name: string; }) => Promise>; fetchMore: (options: import("apollo-client").FetchMoreQueryOptions<() => { name: string; }, K> & import("apollo-client").FetchMoreOptions { name: string; }>) => Promise>; subscribeToMore: (options: import("apollo-client").SubscribeToMoreOptions | Ref> | import("@vue/apollo-composable/dist/util/ReactiveFunction").ReactiveFunction>) => void; onResult: (fn: (param?: import("apollo-client").ApolloQueryResult) => void) => { off: () => void; }; onError: (fn: (param?: Error) => void) => { off: () => void; }; }; export interface ProductPriceInput { priceName: string; currency: string; options: string[]; promoCode?: string; } export interface PricePreview { price: number; exTaxPrice: number; rawPrice: number; tax?: PricePreviewTax; } export interface PricePreviewTax { type: string; rate: number; amount: number; } export declare function useProductPrice(productName: string | Ref, input: Ref): { pricePreview: Ref; yearlyPricePreview: Ref; result: Ref; loading: Ref; networkStatus: Ref; error: Ref; start: () => void; stop: () => void; restart: () => void; document: Ref; variables: Ref<{ name: string; input: ProductPriceInput; }>; options: import("@vue/apollo-composable").UseQueryOptions | Ref>; query: Ref>; refetch: (variables?: { name: string; input: ProductPriceInput; }) => Promise>; fetchMore: (options: import("apollo-client").FetchMoreQueryOptions<{ name: string; input: ProductPriceInput; }, K> & import("apollo-client").FetchMoreOptions) => Promise>; subscribeToMore: (options: import("apollo-client").SubscribeToMoreOptions | Ref> | import("@vue/apollo-composable/dist/util/ReactiveFunction").ReactiveFunction>) => void; onResult: (fn: (param?: import("apollo-client").ApolloQueryResult) => void) => { off: () => void; }; onError: (fn: (param?: Error) => void) => { off: () => void; }; };