import type { ProviderPctMap } from './types';
/**
 * Logical key shape: `@atlaskit/smart-card:<feature>:<schema-version>:<scope>` (see smart-card
 * storage conventions). {@link StorageClient} narrows the localStorage key to
 * `<clientKey>_<itemKey>` with `clientKey === '@atlaskit/smart-card'` and
 * `itemKey === 'pct-map:v1:<cloudId>:<traitName>'` (scope segments URI-encoded).
 */
export declare const PERSONALIZATION_STORAGE_SCOPE: string;
export declare const PERSONALIZATION_STORAGE_ITEM_KEY_PREFIX: string;
/**
 * Service for fetching site-level traits from the TAP Delivery personalization API.
 */
export declare class PersonalizationService {
    private cache;
    /**
     * Returns the currently cached provider percentage map synchronously and starts a background refresh.
     * The refresh result is persisted for future calls but is not awaited by this call.
     */
    getCachedProviderPctMapAndRefresh(traitName: string): ProviderPctMap | null;
    getProviderPctMap(traitName: string): Promise<ProviderPctMap | undefined>;
    private readStoredProviderPctMap;
    private writeStoredProviderPctMap;
    private normalizeProviderPctMap;
    private parseTraitValue;
    clearCache(): void;
    private clearStoredProviderPctMaps;
}
export declare const personalizationService: PersonalizationService;
/**
 * Resolves the provider percentage map for a TAP Delivery trait through the module-level
 * {@link personalizationService}. Work is deduped per trait name for the page lifetime, and a
 * successful response is persisted by cloud id and trait name for later cached reads.
 */
export declare const getProviderPctMap: (traitName: string) => Promise<ProviderPctMap | undefined>;
/**
 * Reads the provider percentage map for a trait from browser storage via the module-level
 * {@link personalizationService} singleton, without awaiting network work.
 * Calling this also starts the trait-scoped shared refresh in the background, so a later call can
 * use a refreshed value when it becomes available.
 */
export declare function getCachedProviderPctMapAndRefresh(traitName: string): ProviderPctMap | null;
