export declare type Uuid = string; export declare type HumanReadableId = string; export declare type RolloutPercent = number; export declare enum UnderlyingVariableType { Boolean = "Boolean", Number = "Number", String = "String", Json = "Json" } export declare enum TargetOperator { RegExp = "RegExp" } export declare enum TargetType { String = "String" } export interface Variable { data: string | number | boolean | null | undefined; name: string; type: string; underlyingType: UnderlyingVariableType | string; uuid: Uuid; } export interface Target { key: string; match: string | number | boolean; operator: TargetOperator | string; type: TargetType | string; uuid: Uuid; } export interface EnabledFeature { enabled: true; targeting: { [key: string]: Target; }; variables: { [name: string]: Variable; }; humanReadableId: HumanReadableId; uuid: Uuid; } export interface DisabledFeature { enabled: false; humanReadableId: HumanReadableId; targeting?: undefined; uuid: Uuid; variables?: undefined; } export declare type Feature = EnabledFeature | DisabledFeature; export interface Variant { feature: Feature; humanReadableId: HumanReadableId; rolloutPercent: RolloutPercent; uuid: Uuid; } export interface EnabledExperiment { enabled: true; humanReadableId: HumanReadableId; rolloutPercent: RolloutPercent; targeting: { [key: string]: Target; }; uuid: Uuid; variants: Array; } export interface DisabledExperiment { enabled: false; humanReadableId: HumanReadableId; targeting?: undefined; rolloutPercent: 0; uuid: Uuid; variants?: undefined; } export declare type Experiment = EnabledExperiment | DisabledExperiment; export interface DataFile { version: string; revision: string; features: Record>; experiments: Record>; } export declare const getDataFile: (environmentId: string, dataFileUrl: string, manualFetch?: typeof fetch | undefined) => Promise; //# sourceMappingURL=data-file.d.ts.map