import type { LinkHoppLink, LinkHoppConfig, LinkHoppLinkCallback } from './types'; /** * LinkHopp Deep Linking SDK for React Native. * * Usage: * ```ts * import { LinkHopp } from '@linkhopp/react-native'; * * LinkHopp.init({ apiKey: 'YOUR_KEY' }); * const link = await LinkHopp.checkDeferredLink(); * ``` */ declare class LinkHoppSDK { private apiKey; private baseUrl; private initialized; private deferredCheckInProgress; private linkSubscription; /** * Initialize the SDK. Must be called before any other method. * * @param config.apiKey Your API key from the LinkHopp dashboard. * @param config.baseUrl Custom worker URL (defaults to https://linkhopp.com). */ init(config: LinkHoppConfig): void; /** * Check for a deferred deep link (post-install attribution). * * Returns a `LinkHoppLink` if a match was found, otherwise `null`. * Thread-safe: concurrent calls are ignored and return `null`. * This check runs at most once per installation. */ checkDeferredLink(): Promise; /** * Register a listener for incoming deep links while the app is running. * * Any previously registered listener is automatically removed to prevent * memory leaks. * * @param callback Invoked with a `LinkHoppLink` each time a link is received. */ handleLink(callback: LinkHoppLinkCallback): void; /** * Check whether the app was launched via a deep link (cold start). * * @returns The opening link as a `LinkHoppLink`, or `null`. */ getInitialLink(): Promise; /** * Remove all listeners and release resources. * Call this in your root component's cleanup / unmount. */ dispose(): void; /** * Reset the deferred-check flag. Useful for testing. */ resetDeferredCheck(): Promise; private requireInitialized; /** * Send the match request to the worker endpoint. */ private postMatch; /** * Android: extract the LinkHopp token from the Play Install Referrer. */ private getInstallReferrerToken; /** * iOS: read a token from the clipboard (format: "linkhopp:"). */ private getClipboardToken; /** * iOS: clear the clipboard token after a successful match. */ private clearClipboardToken; /** * Parse a successful MatchResponse into a LinkHoppLink. */ private parseLink; /** * Get the device language in BCP-47 format. */ private getDeviceLanguage; /** * Get the device timezone name (e.g. "Europe/Berlin"). */ private getTimezone; } /** * Global LinkHopp instance. Use this directly: * * ```ts * import { LinkHopp } from '@linkhopp/react-native'; * LinkHopp.init({ apiKey: '...' }); * ``` */ export declare const LinkHopp: LinkHoppSDK; export {}; //# sourceMappingURL=LinkHopp.d.ts.map