import type { AppManifest, BroadcastTrackingData } from "../types";
type Properties = Record<string, any> | null;
/**
 * 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: Properties, mandatory: boolean | null) => void;
/**
 * Wrap call to underlying trackCall function.
 * @param trackCall
 * @returns a dictionary of event to trigger.
 */
export default function trackingWrapper(trackCall: TrackExchange): {
    readonly signMessageNoParams: (manifest: AppManifest) => void;
    readonly signMessageRequested: (manifest: AppManifest) => void;
    readonly signMessageSuccess: (manifest: AppManifest) => void;
    readonly signMessageFail: (manifest: AppManifest) => void;
    readonly signMessageUserRefused: (manifest: AppManifest) => void;
    readonly signTransactionNoParams: (manifest: AppManifest) => void;
    readonly signTransactionRequested: (manifest: AppManifest) => void;
    readonly signTransactionFail: (manifest: AppManifest) => void;
    readonly signTransactionSuccess: (manifest: AppManifest) => void;
    readonly signTransactionAndBroadcastNoParams: (manifest: AppManifest) => void;
    readonly broadcastFail: (manifest: AppManifest, data?: BroadcastTrackingData) => void;
    readonly broadcastSuccess: (manifest: AppManifest, data?: BroadcastTrackingData) => void;
    readonly broadcastOperationDetailsClick: (manifest: AppManifest) => void;
};
export type TrackingAPI = ReturnType<typeof trackingWrapper>;
export {};
//# sourceMappingURL=tracking.d.ts.map