import type { AppManifest } from "../types"; /** * This signature is to be compatible with track method of `segment.js` file in LLM and LLD * `track(event: string, properties: ?Object, mandatory: ?boolean)` in jsflow * {@link @ledger-desktop/renderer/analytics/segment#track} */ type TrackExchange = (event: string, properties: Record | null, mandatory: boolean | null) => void; interface TrackEventPayload { exchangeType: "SELL" | "FUND" | "SWAP"; provider: string; isEmbeddedSwap?: boolean; } /** * Wrap call to underlying trackCall function. * @param trackCall * @returns a dictionary of event to trigger. */ export default function trackingWrapper(trackCall: TrackExchange): { readonly startExchangeRequested: ({ provider, exchangeType, isEmbeddedSwap }: TrackEventPayload) => void; readonly startExchangeSuccess: ({ provider, exchangeType, isEmbeddedSwap }: TrackEventPayload) => void; readonly startExchangeFail: ({ provider, exchangeType, isEmbeddedSwap }: TrackEventPayload) => void; readonly startExchangeNoParams: (manifest: AppManifest) => void; readonly completeExchangeRequested: ({ provider, exchangeType, isEmbeddedSwap }: TrackEventPayload) => void; readonly completeExchangeSuccess: ({ provider, exchangeType, currency, isEmbeddedSwap, }: TrackEventPayload & { currency: string; }) => void; readonly completeExchangeFail: ({ provider, exchangeType, isEmbeddedSwap }: TrackEventPayload) => void; readonly completeExchangeNoParams: (manifest: AppManifest) => void; readonly swapPayloadRequested: ({ provider, transactionId, fromAccountAddress, toAccountAddress, fromCurrencyId, toCurrencyId, fromAmount, quoteId, }: { provider: string; transactionId: string; fromAccountAddress: string; toAccountAddress: string; fromCurrencyId: string; toCurrencyId?: string; fromAmount: string | number; quoteId?: string; }) => void; readonly swapResponseRetrieved: ({ binaryPayload, signature, payinAddress, swapId, payinExtraId, extraTransactionParameters, }: { binaryPayload: string; signature: string; payinAddress: string; swapId: string; payinExtraId?: string; extraTransactionParameters?: string; }) => void; }; export type TrackingAPI = ReturnType; export {}; //# sourceMappingURL=tracking.d.ts.map