import { DeviceType } from '../profile'; import type { Type } from '../types'; export declare enum ConditionType { 'Locale' = "Locale", 'QueryString' = "Query String", 'UserAgent' = "User Agent", 'Debug' = "Debug", 'Default' = "Default" } export declare function getTypeForVariant(variant: ConditionType): Type; export interface BaseVariant { conditionType: ConditionType; priority: number; } export interface DefaultVariant { conditionType: ConditionType.Default; priority: number; } export interface LocaleVariant extends BaseVariant { conditionType: ConditionType.Locale; code?: string; } export interface QueryStringVariant extends BaseVariant { conditionType: ConditionType.QueryString; param?: string; value?: string; } export interface UserAgentVariant extends BaseVariant { conditionType: ConditionType.UserAgent; agent?: DeviceType; } export interface DebugVariant extends BaseVariant { conditionType: ConditionType.Debug; isEnabled?: boolean; } export type ZVariant = LocaleVariant | QueryStringVariant | UserAgentVariant | DebugVariant | DefaultVariant; export declare class ValuesManager { private valuesString; private profile; /** * Creates an instance of ValuesManager. * @param valuesString - The values string. * @param states - The states. */ constructor(valuesString: string, states: Map); private getValueForKey; private getEnabledStateOfVariant; } export type ZValuesKey = { type: Type; }; export type ZValuesKeys = { [key: string]: ZValuesKey; }; export type ZValuesValues = { [key: string]: { [key: string]: any; }; }; export type ZValues = { keys: ZValuesKeys; variantsByID: { [id: string]: ZVariant; }; values: ZValuesValues; };