import { ISplitStatus } from './types';
export declare function getSplitClient(factory: SplitIO.IBrowserSDK, key?: SplitIO.SplitKey): SplitIO.IBrowserClient;
export declare function getStatus(client?: SplitIO.IBrowserClient): ISplitStatus;
export declare function initAttributes(client?: SplitIO.IBrowserClient, attributes?: SplitIO.Attributes): void;
export declare function getTreatment(flagName: string, withConfig: true, factory?: SplitIO.IBrowserSDK): SplitIO.TreatmentWithConfig;
export declare function getTreatment(flagName: string, withConfig: false, factory?: SplitIO.IBrowserSDK): SplitIO.Treatment;
export declare function getTreatment(flagName: string, withConfig: boolean, factory?: SplitIO.IBrowserSDK): SplitIO.Treatment | SplitIO.TreatmentWithConfig;
export declare function getTreatments(featureFlagNames: unknown, withConfig: true, factory?: SplitIO.IBrowserSDK): SplitIO.TreatmentsWithConfig;
export declare function getTreatments(featureFlagNames: unknown, withConfig: false, factory?: SplitIO.IBrowserSDK): SplitIO.Treatments;
/**
 * Utils to memoize `client.getTreatments*` method calls to avoid duplicated impressions.
 * The result treatments are the same given the same `client` instance, `lastUpdate` timestamp, and list of feature flag names and attributes.
 */
export declare function argsAreEqual(newArgs: any[], lastArgs: any[]): boolean;
