export interface SocialProof {
    connectedPct: number | undefined;
    isEnabled: boolean;
    /** True while fetching personalization (only when `isEnabled`). */
    isLoading: boolean;
}
/**
 * Cache-first social proof hook.
 *
 * On mount:
 * 1. Reads localStorage synchronously via `getProviderPctMapSync`.
 *    - If data exists (warm cache): sets `providerPctMap` immediately, `isLoading = false`.
 *    - If no data (cold cache): leaves `providerPctMap` undefined, `isLoading = false`.
 * 2. Always kicks off an async fetch (fire-and-forget) via `getProviderPctMap` to populate
 *    localStorage for next page load. Does NOT update state with the async result.
 *
 * This means:
 * - First page visit (cold): no social proof rendered, no experiment exposure fired.
 *   Background fetch populates localStorage for next time.
 * - Second page visit (warm): social proof renders immediately from localStorage.
 *   Background refresh keeps localStorage fresh.
 *
 * Callers decide separately (e.g. via Statsig experiment) whether to surface the data.
 */
declare const useSocialProof: (extensionKey?: string, isKillswitchOn?: boolean, baseUriWithNoTrailingSlash?: string) => SocialProof;
export default useSocialProof;
