featurehub-javascript-client-sdk
Version:
FeatureHub client/browser SDK
43 lines (42 loc) • 2.01 kB
TypeScript
import { EdgeService } from './edge_service';
import { ClientContext } from './client_context';
import { InternalFeatureRepository } from './internal_feature_repository';
import { AnalyticsCollector } from './analytics';
import { FeatureStateValueInterceptor } from './interceptors';
import { FeatureHubRepository, Readyness, ReadynessListener } from './featurehub_repository';
import { FeatureStateHolder } from './feature_state';
export type EdgeServiceProvider = (repository: InternalFeatureRepository, config: FeatureHubConfig) => EdgeService;
export type EdgeServiceSupplier = () => EdgeService;
export type FHLogMethod = (...args: any[]) => void;
export type ReadinessListenerHandle = number;
export type CatchReleaseListenerHandler = number;
export declare class FHLog {
static fhLog: FHLog;
log: FHLogMethod;
error: FHLogMethod;
trace: FHLogMethod;
quiet(): void;
}
export declare const fhLog: FHLog;
export interface FeatureHubConfig {
readyness: Readyness;
readiness: Readyness;
feature<T = any>(name: string): FeatureStateHolder<T>;
url(): string;
repository(repository?: FeatureHubRepository): FeatureHubRepository;
edgeServiceProvider(edgeService?: EdgeServiceProvider): EdgeServiceProvider;
newContext(repository?: FeatureHubRepository, edgeService?: EdgeServiceProvider): ClientContext;
clientEvaluated(): boolean;
apiKey(apiKey: string): FeatureHubConfig;
getApiKeys(): Array<string>;
getHost(): string;
init(): FeatureHubConfig;
close(): void;
get closed(): boolean;
get initialized(): boolean;
addReadynessListener(listener: ReadynessListener): ReadinessListenerHandle;
addReadinessListener(listener: ReadynessListener, ignoreNotReadyOnRegister?: boolean): ReadinessListenerHandle;
removeReadinessListener(handle: ReadynessListener | ReadinessListenerHandle): any;
addAnalyticCollector(collector: AnalyticsCollector): void;
addValueInterceptor(interceptor: FeatureStateValueInterceptor): void;
}