@amplitude/analytics-browser
Version:
Official Amplitude SDK for Web
92 lines • 6.1 kB
TypeScript
import { Config, ILogger, LogLevel, Event, Storage, IngestionMetadata, ServerZoneType, OfflineDisabled, Plan, IdentityStorageType, TransportTypeOrOptions, MemoryStorage, CookieStorage, FetchTransport, UserSession, BrowserOptions, BrowserConfig as IBrowserConfig, DefaultTrackingOptions, TrackingOptions, AutocaptureOptions, CookieOptions, RemoteConfigOptions, NetworkTrackingOptions, IIdentify, IDiagnosticsClient, CookieStorageConfig } from '@amplitude/analytics-core';
import { LocalStorage } from './storage/local-storage';
import { SessionStorage } from './storage/session-storage';
import { XHRTransport } from './transports/xhr';
import { SendBeaconTransport } from './transports/send-beacon';
import { AmplitudeBrowser } from './browser-client';
export declare class BrowserConfig extends Config implements IBrowserConfig {
apiKey: string;
appVersion?: string | undefined;
cookieOptions: CookieOptions;
defaultTracking?: (boolean | DefaultTrackingOptions) | undefined;
autocapture?: (boolean | AutocaptureOptions) | undefined;
flushIntervalMillis: number;
flushMaxRetries: number;
flushQueueSize: number;
identityStorage: IdentityStorageType;
ingestionMetadata?: IngestionMetadata | undefined;
instanceName?: string | undefined;
loggerProvider: ILogger;
logLevel: LogLevel;
minIdLength?: number | undefined;
offline: boolean | typeof OfflineDisabled;
partnerId?: string | undefined;
plan?: Plan | undefined;
serverUrl: string;
serverZone: ServerZoneType;
sessionTimeout: number;
storageProvider: Storage<Event[]>;
trackingOptions: Required<TrackingOptions>;
transport: TransportTypeOrOptions;
useBatch: boolean;
fetchRemoteConfig: boolean;
networkTrackingOptions?: NetworkTrackingOptions | undefined;
identify?: IIdentify | undefined;
enableDiagnostics: boolean;
diagnosticsSampleRate: number;
diagnosticsClient?: IDiagnosticsClient | undefined;
remoteConfig?: RemoteConfigOptions | undefined;
readonly version = "2.34.0";
protected _cookieStorage: Storage<UserSession>;
protected _deviceId?: string;
protected _lastEventId?: number;
protected _lastEventTime?: number;
protected _optOut: boolean;
protected _sessionId?: number;
protected _userId?: string;
protected _pageCounter?: number;
protected _debugLogsEnabled?: boolean;
constructor(apiKey: string, appVersion?: string | undefined, cookieStorage?: Storage<UserSession>, cookieOptions?: CookieOptions, defaultTracking?: (boolean | DefaultTrackingOptions) | undefined, autocapture?: (boolean | AutocaptureOptions) | undefined, deviceId?: string, flushIntervalMillis?: number, flushMaxRetries?: number, flushQueueSize?: number, identityStorage?: IdentityStorageType, ingestionMetadata?: IngestionMetadata | undefined, instanceName?: string | undefined, lastEventId?: number, lastEventTime?: number, loggerProvider?: ILogger, logLevel?: LogLevel, minIdLength?: number | undefined, offline?: boolean | typeof OfflineDisabled, optOut?: boolean, partnerId?: string | undefined, plan?: Plan | undefined, serverUrl?: string, serverZone?: ServerZoneType, sessionId?: number, sessionTimeout?: number, storageProvider?: Storage<Event[]>, trackingOptions?: Required<TrackingOptions>, transport?: TransportTypeOrOptions, useBatch?: boolean, fetchRemoteConfig?: boolean, userId?: string, pageCounter?: number, debugLogsEnabled?: boolean, networkTrackingOptions?: NetworkTrackingOptions | undefined, identify?: IIdentify | undefined, enableDiagnostics?: boolean, diagnosticsSampleRate?: number, diagnosticsClient?: IDiagnosticsClient | undefined, remoteConfig?: RemoteConfigOptions | undefined);
get cookieStorage(): Storage<UserSession>;
set cookieStorage(cookieStorage: Storage<UserSession>);
get deviceId(): string | undefined;
set deviceId(deviceId: string | undefined);
get userId(): string | undefined;
set userId(userId: string | undefined);
get sessionId(): number | undefined;
set sessionId(sessionId: number | undefined);
get optOut(): boolean;
set optOut(optOut: boolean);
get lastEventTime(): number | undefined;
set lastEventTime(lastEventTime: number | undefined);
get lastEventId(): number | undefined;
set lastEventId(lastEventId: number | undefined);
get pageCounter(): number | undefined;
set pageCounter(pageCounter: number | undefined);
set debugLogsEnabled(debugLogsEnabled: boolean | undefined);
private updateStorage;
}
/**
* Early-initialized configuration values that are determined before useBrowserConfig is called.
* These are created early to support DiagnosticsClient and RemoteConfigClient initialization.
*/
export interface EarlyConfig {
/** Logger instance - shared across DiagnosticsClient, RemoteConfigClient, and BrowserConfig */
loggerProvider: ILogger;
/** Server zone for API endpoints */
serverZone: ServerZoneType;
/** Whether diagnostics is enabled (may come from remote config) */
enableDiagnostics: boolean;
/** Diagnostics sample rate (may come from remote config) */
diagnosticsSampleRate: number;
}
export declare const useBrowserConfig: (apiKey: string, options: BrowserOptions | undefined, amplitudeInstance: AmplitudeBrowser, diagnosticsClient?: IDiagnosticsClient, earlyConfig?: EarlyConfig) => Promise<IBrowserConfig>;
export declare const createCookieStorage: <T>(identityStorage?: IdentityStorageType, cookieOptions?: CookieOptions, cookieConfig?: CookieStorageConfig) => LocalStorage<T> | SessionStorage<T> | MemoryStorage<T> | CookieStorage<T>;
/**
* Determines whether to fetch remote config based on options.
* Extracted to allow early determination before useBrowserConfig is called.
*/
export declare const shouldFetchRemoteConfig: (options?: BrowserOptions) => boolean;
export declare const createTransport: (transport?: TransportTypeOrOptions) => XHRTransport | SendBeaconTransport | FetchTransport;
export declare const getTopLevelDomain: (url?: string) => Promise<string>;
//# sourceMappingURL=config.d.ts.map