export declare const SUCCESS_LOG_COOLDOWN_MS: number; export type SuccessLogCooldown = { recordEmitted: (now?: number) => Promise; shouldEmit: (now?: number) => Promise; }; type CreateSuccessLogCooldownArgs = { /** * Short identifier used only in warning log messages so storage * failures are distinguishable in Datadog (e.g. `'webview'` vs * `'embedded webview'`). */ name: string; /** * Dedicated `expo-secure-store` key under which the timestamp of the * last successful emit is persisted. Each call site MUST use a * distinct key so the two log streams cooldown independently. */ storageKey: string; }; /** * Create a device-local cooldown gate for a `webview.load_succeeded` * instrumentation log. * * Both `` (RN bridge) and `` (native bridge) * emit the same success log; each instantiates its own cooldown with a * dedicated storage key so emitting one log doesn't starve the other * for an app that mounts both. * * - `shouldEmit` returns `true` when the cooldown has elapsed (or no * timestamp has ever been stored) and `false` while inside the * window. If secure-store throws on read we default to emitting — * losing a diagnostic log is worse than the rare duplicate. * - `recordEmitted` persists the current timestamp so subsequent calls * within the window are suppressed. Write failures are swallowed * (logged as a warning) so they don't break the host wrapper — * worst case the next emit also goes through. */ export declare const createSuccessLogCooldown: ({ name, storageKey, }: CreateSuccessLogCooldownArgs) => SuccessLogCooldown; export {};