import { EvaluationDetails } from './StatsigStore';
export type LogParameterFunction = (layer: Layer, parameterName: string) => void;
export default class Layer {
    private logParameterFunction;
    private name;
    private value;
    private ruleID;
    private groupName;
    private secondaryExposures;
    private undelegatedSecondaryExposures;
    private allocatedExperimentName;
    private explicitParameters;
    private evaluationDetails;
    private constructor();
    static _create(name: string, value: Record<string, unknown>, ruleID: string, evaluationDetails: EvaluationDetails, logParameterFunction?: LogParameterFunction | null, secondaryExposures?: Record<string, string>[], undelegatedSecondaryExposures?: Record<string, string>[], allocatedExperimentName?: string, explicitParameters?: string[], groupName?: string | null): Layer;
    get<T>(key: string, defaultValue: T, typeGuard?: (value: unknown) => value is T): T;
    getValue(key: string, defaultValue?: unknown): unknown;
    getRuleID(): string;
    getGroupName(): string | null;
    getName(): string;
    getEvaluationDetails(): EvaluationDetails;
    _getSecondaryExposures(): Record<string, string>[];
    _getUndelegatedSecondaryExposures(): Record<string, string>[];
    _getAllocatedExperimentName(): string;
    _getExplicitParameters(): string[];
    _getEvaluationDetails(): EvaluationDetails;
    private logLayerParameterExposure;
}
