import type { AnalyticsEvent, EventMiddlewareFn, ScreenMiddlewareFn } from '../types'; /** * Enriches every event with a fixed set of extra properties. * * ```ts * analytics.addEventMiddleware( * createPropertyEnricher({ app_version: '2.1.0', environment: 'production' }) * ); * ``` */ export declare function createPropertyEnricher(properties: Record): EventMiddlewareFn; /** * Filters out events that don't pass the predicate. * If the predicate returns false the event is dropped silently. * * ```ts * analytics.addEventMiddleware( * createEventFilter((event) => event.name !== 'internal_debug_event') * ); * ``` */ export declare function createEventFilter(predicate: (event: AnalyticsEvent) => boolean): EventMiddlewareFn; /** * Transforms event names and/or properties before they reach adapters. * * ```ts * analytics.addEventMiddleware( * createEventTransformer((event) => ({ * ...event, * name: event.name.toLowerCase().replace(/ /g, '_'), * })) * ); * ``` */ export declare function createEventTransformer(transform: (event: AnalyticsEvent) => AnalyticsEvent): EventMiddlewareFn; /** * Adds UTM / attribution properties to every event. * Useful when you capture UTM params from a deep link. * * ```ts * analytics.addEventMiddleware( * createAttributionEnricher({ utm_source: 'email', utm_medium: 'newsletter' }) * ); * ``` */ export declare function createAttributionEnricher(attribution: Record): EventMiddlewareFn; /** * Screen middleware: filters out screens that match a blocklist. * * ```ts * analytics.addScreenMiddleware( * createScreenFilter(['Loading', 'Splash']) * ); * ``` */ export declare function createScreenFilter(blocklist: string[]): ScreenMiddlewareFn; /** * Screen middleware: enriches every screen event with extra properties. */ export declare function createScreenEnricher(properties: Record): ScreenMiddlewareFn; //# sourceMappingURL=index.d.ts.map