type TrackEventType = 'load' | 'exview' | 'search' | 'route' | 'share' | 'booview' | 'catview' | 'ws_exhibitor_click' | 'sesview' | 'bookmark' | 'spkview' | 'sbtnview';
/** Which kind of entity a `bookmark` event refers to. */
export type TrackEventBookmarkSubtype = 'booth' | 'exhibitor' | 'session' | 'speaker';
/**
 * Which button surface an `sbtnview` came from. The main row above the plan
 * sends none, so its series is unchanged; the surfaces added later are
 * distinguishable instead of being silently mixed into the same counter.
 */
export type TrackEventButtonSubtype = 'subbutton' | 'shortcut';
export type TrackEventSubtype = TrackEventBookmarkSubtype | TrackEventButtonSubtype;
export default function trackEvent(type: TrackEventType, value?: any, subtype?: TrackEventSubtype): Promise<void>;
/**
 * Drops the module-scope telemetry state — the client (with its cached expo,
 * expoId and kioskId) and the one-shot migration flag. `unstable_destroy()`
 * tears down the DOM and the stores, but ES module state outlives it, so
 * without this a host that destroys the plan and loads a different one keeps
 * reporting under the first plan's event.
 *
 * Anything the client still had queued is drained first: it belongs to the
 * plan being torn down. That drain is best-effort — `flush()` is async and
 * can return early — so it is not what stops the batch being credited to the
 * next plan; the per-expo storage key is. A batch restored after a failed
 * POST keeps its own expo's key and waits for the next client for that expo,
 * instead of being adopted and relabelled by a different one.
 */
export declare function resetTelemetry(): void;
export {};
//# sourceMappingURL=track-event.d.ts.map