import { EvaluationDetails } from './EvaluationMetadata'; import { StatsigUser } from './StatsigUser'; export type LogParameterFunction = (layer: Layer, parameterName: string) => void; export default class Layer { readonly _user: StatsigUser; readonly _name: string; readonly _value: Record; readonly _ruleID: string; readonly _secondaryExposures: Record[]; readonly _undelegatedSecondaryExposures: Record[]; readonly _allocatedExperimentName: string | null; readonly _explicitParameters: string[]; readonly _evaluationDetails: EvaluationDetails; readonly _logParameterFunction: LogParameterFunction | null; readonly _groupName: string | null; private constructor(); static _create(user: StatsigUser, name: string, value: Record, ruleID: string, evaluationDetails: EvaluationDetails, logParameterFunction?: LogParameterFunction | null, secondaryExposures?: Record[], undelegatedSecondaryExposures?: Record[], allocatedExperimentName?: string | null, explicitParameters?: string[], groupName?: string | null): Layer; get(key: string, defaultValue: T, typeGuard?: (value: unknown) => value is T): T; getValue(key: string, defaultValue?: any | null): boolean | number | string | object | Array | null; private _logLayerParameterExposure; }