import { IDataAdapter } from './interfaces/IDataAdapter'; export type RulesUpdatedCallback = (rulesJSON: string, time: number) => void; export type RetryBackoffFunc = (retriesRemaining: number) => number; export type StatsigEnvironment = { tier?: 'production' | 'staging' | 'development' | string; [key: string]: string | undefined; }; export type InitStrategy = 'await' | 'lazy' | 'none'; export interface LoggerInterface { warn(message?: any, ...optionalParams: any[]): void; error(message?: any, ...optionalParams: any[]): void; } export type ExplicitStatsigOptions = { api: string | null; apiForDownloadConfigSpecs: string | null; bootstrapValues: string | null; environment: StatsigEnvironment | null; rulesUpdatedCallback: RulesUpdatedCallback | null; logger: LoggerInterface; localMode: boolean; initTimeoutMs: number; dataAdapter: IDataAdapter | null; rulesetsSyncIntervalMs: number; idListsSyncIntervalMs: number; loggingIntervalMs: number; loggingMaxBufferSize: number; disableDiagnostics: boolean; initStrategyForIDLists: InitStrategy; allowReInitialize: boolean; postLogsRetryLimit: number; postLogsRetryBackoff: RetryBackoffFunc | number; disableRulesetsSync: boolean; disableIdListsSync: boolean; }; /** * An object of properties for initializing the sdk with advanced options */ export type StatsigOptions = Partial; export declare function OptionsWithDefaults(opts: StatsigOptions): ExplicitStatsigOptions;