@featurevisor/core
Version:
Core package of Featurevisor for Node.js usage
647 lines (646 loc) • 27.9 kB
TypeScript
import { z } from "zod";
import { ProjectConfig } from "../config";
export declare function getFeatureZodSchema(projectConfig: ProjectConfig, conditionsZodSchema: any, availableAttributeKeys: [string, ...string[]], availableSegmentKeys: [string, ...string[]], availableFeatureKeys: [string, ...string[]]): z.ZodEffects<z.ZodObject<{
archived: z.ZodOptional<z.ZodBoolean>;
deprecated: z.ZodOptional<z.ZodBoolean>;
description: z.ZodString;
tags: z.ZodEffects<z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">, string[], string[]>;
required: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodEffects<z.ZodString, string, string>, z.ZodObject<{
key: z.ZodEffects<z.ZodString, string, string>;
variation: z.ZodOptional<z.ZodString>;
}, "strict", z.ZodTypeAny, {
key?: string;
variation?: string;
}, {
key?: string;
variation?: string;
}>]>, "many">>;
bucketBy: z.ZodUnion<[z.ZodEffects<z.ZodString, string, string>, z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">, z.ZodObject<{
or: z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">;
}, "strict", z.ZodTypeAny, {
or?: string[];
}, {
or?: string[];
}>]>;
variablesSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
deprecated: z.ZodOptional<z.ZodBoolean>;
type: z.ZodEnum<["string", "integer", "boolean", "double", "array", "object", "json"]>;
description: z.ZodOptional<z.ZodString>;
defaultValue: z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString, "many">, z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>]>;
useDefaultWhenDisabled: z.ZodOptional<z.ZodBoolean>;
disabledValue: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString, "many">, z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>]>>;
}, "strict", z.ZodTypeAny, {
deprecated?: boolean;
type?: "string" | "boolean" | "object" | "json" | "integer" | "double" | "array";
description?: string;
defaultValue?: string | number | boolean | string[] | Record<string, unknown>;
useDefaultWhenDisabled?: boolean;
disabledValue?: string | number | boolean | string[] | Record<string, unknown>;
}, {
deprecated?: boolean;
type?: "string" | "boolean" | "object" | "json" | "integer" | "double" | "array";
description?: string;
defaultValue?: string | number | boolean | string[] | Record<string, unknown>;
useDefaultWhenDisabled?: boolean;
disabledValue?: string | number | boolean | string[] | Record<string, unknown>;
}>>>;
disabledVariationValue: z.ZodOptional<z.ZodString>;
variations: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodObject<{
description: z.ZodOptional<z.ZodString>;
value: z.ZodString;
weight: z.ZodNumber;
variables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString, "many">, z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>]>>>;
variableOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnion<[z.ZodObject<{
conditions: any;
value: z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString, "many">, z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>]>;
}, "strict", z.ZodTypeAny, {
conditions?: any;
value?: string | number | boolean | string[] | Record<string, unknown>;
}, {
conditions?: any;
value?: string | number | boolean | string[] | Record<string, unknown>;
}>, z.ZodObject<{
segments: z.ZodUnion<[z.ZodArray<any, "many">, any]>;
value: z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString, "many">, z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>]>;
}, "strict", z.ZodTypeAny, {
segments?: any;
value?: string | number | boolean | string[] | Record<string, unknown>;
}, {
segments?: any;
value?: string | number | boolean | string[] | Record<string, unknown>;
}>]>, "many">>>;
}, "strict", z.ZodTypeAny, {
description?: string;
value?: string;
weight?: number;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
variableOverrides?: Record<string, ({
conditions?: any;
value?: string | number | boolean | string[] | Record<string, unknown>;
} | {
segments?: any;
value?: string | number | boolean | string[] | Record<string, unknown>;
})[]>;
}, {
description?: string;
value?: string;
weight?: number;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
variableOverrides?: Record<string, ({
conditions?: any;
value?: string | number | boolean | string[] | Record<string, unknown>;
} | {
segments?: any;
value?: string | number | boolean | string[] | Record<string, unknown>;
})[]>;
}>, "many">, {
description?: string;
value?: string;
weight?: number;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
variableOverrides?: Record<string, ({
conditions?: any;
value?: string | number | boolean | string[] | Record<string, unknown>;
} | {
segments?: any;
value?: string | number | boolean | string[] | Record<string, unknown>;
})[]>;
}[], {
description?: string;
value?: string;
weight?: number;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
variableOverrides?: Record<string, ({
conditions?: any;
value?: string | number | boolean | string[] | Record<string, unknown>;
} | {
segments?: any;
value?: string | number | boolean | string[] | Record<string, unknown>;
})[]>;
}[]>>;
expose: z.ZodOptional<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">]>>> | z.ZodOptional<z.ZodRecord<z.ZodEnum<[string, ...string[]]>, z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">]>>>>;
force: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodObject<{
segments: z.ZodUnion<[z.ZodArray<any, "many">, any]>;
enabled: z.ZodOptional<z.ZodBoolean>;
variation: z.ZodOptional<z.ZodString>;
variables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString, "many">, z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>]>>>;
}, "strict", z.ZodTypeAny, {
segments?: any;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
}, {
segments?: any;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
}>, z.ZodObject<{
conditions: any;
enabled: z.ZodOptional<z.ZodBoolean>;
variation: z.ZodOptional<z.ZodString>;
variables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString, "many">, z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>]>>>;
}, "strict", z.ZodTypeAny, {
conditions?: any;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
}, {
conditions?: any;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
}>]>, "many">> | z.ZodOptional<z.ZodRecord<z.ZodEnum<[string, ...string[]]>, z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodObject<{
segments: z.ZodUnion<[z.ZodArray<any, "many">, any]>;
enabled: z.ZodOptional<z.ZodBoolean>;
variation: z.ZodOptional<z.ZodString>;
variables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString, "many">, z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>]>>>;
}, "strict", z.ZodTypeAny, {
segments?: any;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
}, {
segments?: any;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
}>, z.ZodObject<{
conditions: any;
enabled: z.ZodOptional<z.ZodBoolean>;
variation: z.ZodOptional<z.ZodString>;
variables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString, "many">, z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>]>>>;
}, "strict", z.ZodTypeAny, {
conditions?: any;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
}, {
conditions?: any;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
}>]>, "many">>>>;
rules: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodArray<z.ZodObject<{
key: z.ZodString;
description: z.ZodOptional<z.ZodString>;
segments: z.ZodUnion<[z.ZodArray<any, "many">, any]>;
percentage: z.ZodNumber;
enabled: z.ZodOptional<z.ZodBoolean>;
variation: z.ZodOptional<z.ZodString>;
variables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString, "many">, z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>]>>>;
variationWeights: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
}, "strict", z.ZodTypeAny, {
key?: string;
description?: string;
segments?: any;
percentage?: number;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
variationWeights?: Record<string, number>;
}, {
key?: string;
description?: string;
segments?: any;
percentage?: number;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
variationWeights?: Record<string, number>;
}>, "many">, {
key?: string;
description?: string;
segments?: any;
percentage?: number;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
variationWeights?: Record<string, number>;
}[], {
key?: string;
description?: string;
segments?: any;
percentage?: number;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
variationWeights?: Record<string, number>;
}[]>, {
key?: string;
description?: string;
segments?: any;
percentage?: number;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
variationWeights?: Record<string, number>;
}[], {
key?: string;
description?: string;
segments?: any;
percentage?: number;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
variationWeights?: Record<string, number>;
}[]>, {
key?: string;
description?: string;
segments?: any;
percentage?: number;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
variationWeights?: Record<string, number>;
}[], {
key?: string;
description?: string;
segments?: any;
percentage?: number;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
variationWeights?: Record<string, number>;
}[]> | z.ZodRecord<z.ZodEnum<[string, ...string[]]>, z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodArray<z.ZodObject<{
key: z.ZodString;
description: z.ZodOptional<z.ZodString>;
segments: z.ZodUnion<[z.ZodArray<any, "many">, any]>;
percentage: z.ZodNumber;
enabled: z.ZodOptional<z.ZodBoolean>;
variation: z.ZodOptional<z.ZodString>;
variables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString, "many">, z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>]>>>;
variationWeights: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
}, "strict", z.ZodTypeAny, {
key?: string;
description?: string;
segments?: any;
percentage?: number;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
variationWeights?: Record<string, number>;
}, {
key?: string;
description?: string;
segments?: any;
percentage?: number;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
variationWeights?: Record<string, number>;
}>, "many">, {
key?: string;
description?: string;
segments?: any;
percentage?: number;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
variationWeights?: Record<string, number>;
}[], {
key?: string;
description?: string;
segments?: any;
percentage?: number;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
variationWeights?: Record<string, number>;
}[]>, {
key?: string;
description?: string;
segments?: any;
percentage?: number;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
variationWeights?: Record<string, number>;
}[], {
key?: string;
description?: string;
segments?: any;
percentage?: number;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
variationWeights?: Record<string, number>;
}[]>, {
key?: string;
description?: string;
segments?: any;
percentage?: number;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
variationWeights?: Record<string, number>;
}[], {
key?: string;
description?: string;
segments?: any;
percentage?: number;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
variationWeights?: Record<string, number>;
}[]>>;
}, "strict", z.ZodTypeAny, {
archived?: boolean;
deprecated?: boolean;
description?: string;
tags?: string[];
required?: (string | {
key?: string;
variation?: string;
})[];
bucketBy?: string | string[] | {
or?: string[];
};
variablesSchema?: Record<string, {
deprecated?: boolean;
type?: "string" | "boolean" | "object" | "json" | "integer" | "double" | "array";
description?: string;
defaultValue?: string | number | boolean | string[] | Record<string, unknown>;
useDefaultWhenDisabled?: boolean;
disabledValue?: string | number | boolean | string[] | Record<string, unknown>;
}>;
disabledVariationValue?: string;
variations?: {
description?: string;
value?: string;
weight?: number;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
variableOverrides?: Record<string, ({
conditions?: any;
value?: string | number | boolean | string[] | Record<string, unknown>;
} | {
segments?: any;
value?: string | number | boolean | string[] | Record<string, unknown>;
})[]>;
}[];
expose?: boolean | string[] | Record<string, boolean | string[]>;
force?: ({
segments?: any;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
} | {
conditions?: any;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
})[] | Record<string, ({
segments?: any;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
} | {
conditions?: any;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
})[]>;
rules?: {
key?: string;
description?: string;
segments?: any;
percentage?: number;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
variationWeights?: Record<string, number>;
}[] | Record<string, {
key?: string;
description?: string;
segments?: any;
percentage?: number;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
variationWeights?: Record<string, number>;
}[]>;
}, {
archived?: boolean;
deprecated?: boolean;
description?: string;
tags?: string[];
required?: (string | {
key?: string;
variation?: string;
})[];
bucketBy?: string | string[] | {
or?: string[];
};
variablesSchema?: Record<string, {
deprecated?: boolean;
type?: "string" | "boolean" | "object" | "json" | "integer" | "double" | "array";
description?: string;
defaultValue?: string | number | boolean | string[] | Record<string, unknown>;
useDefaultWhenDisabled?: boolean;
disabledValue?: string | number | boolean | string[] | Record<string, unknown>;
}>;
disabledVariationValue?: string;
variations?: {
description?: string;
value?: string;
weight?: number;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
variableOverrides?: Record<string, ({
conditions?: any;
value?: string | number | boolean | string[] | Record<string, unknown>;
} | {
segments?: any;
value?: string | number | boolean | string[] | Record<string, unknown>;
})[]>;
}[];
expose?: boolean | string[] | Record<string, boolean | string[]>;
force?: ({
segments?: any;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
} | {
conditions?: any;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
})[] | Record<string, ({
segments?: any;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
} | {
conditions?: any;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
})[]>;
rules?: {
key?: string;
description?: string;
segments?: any;
percentage?: number;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
variationWeights?: Record<string, number>;
}[] | Record<string, {
key?: string;
description?: string;
segments?: any;
percentage?: number;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
variationWeights?: Record<string, number>;
}[]>;
}>, {
archived?: boolean;
deprecated?: boolean;
description?: string;
tags?: string[];
required?: (string | {
key?: string;
variation?: string;
})[];
bucketBy?: string | string[] | {
or?: string[];
};
variablesSchema?: Record<string, {
deprecated?: boolean;
type?: "string" | "boolean" | "object" | "json" | "integer" | "double" | "array";
description?: string;
defaultValue?: string | number | boolean | string[] | Record<string, unknown>;
useDefaultWhenDisabled?: boolean;
disabledValue?: string | number | boolean | string[] | Record<string, unknown>;
}>;
disabledVariationValue?: string;
variations?: {
description?: string;
value?: string;
weight?: number;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
variableOverrides?: Record<string, ({
conditions?: any;
value?: string | number | boolean | string[] | Record<string, unknown>;
} | {
segments?: any;
value?: string | number | boolean | string[] | Record<string, unknown>;
})[]>;
}[];
expose?: boolean | string[] | Record<string, boolean | string[]>;
force?: ({
segments?: any;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
} | {
conditions?: any;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
})[] | Record<string, ({
segments?: any;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
} | {
conditions?: any;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
})[]>;
rules?: {
key?: string;
description?: string;
segments?: any;
percentage?: number;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
variationWeights?: Record<string, number>;
}[] | Record<string, {
key?: string;
description?: string;
segments?: any;
percentage?: number;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
variationWeights?: Record<string, number>;
}[]>;
}, {
archived?: boolean;
deprecated?: boolean;
description?: string;
tags?: string[];
required?: (string | {
key?: string;
variation?: string;
})[];
bucketBy?: string | string[] | {
or?: string[];
};
variablesSchema?: Record<string, {
deprecated?: boolean;
type?: "string" | "boolean" | "object" | "json" | "integer" | "double" | "array";
description?: string;
defaultValue?: string | number | boolean | string[] | Record<string, unknown>;
useDefaultWhenDisabled?: boolean;
disabledValue?: string | number | boolean | string[] | Record<string, unknown>;
}>;
disabledVariationValue?: string;
variations?: {
description?: string;
value?: string;
weight?: number;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
variableOverrides?: Record<string, ({
conditions?: any;
value?: string | number | boolean | string[] | Record<string, unknown>;
} | {
segments?: any;
value?: string | number | boolean | string[] | Record<string, unknown>;
})[]>;
}[];
expose?: boolean | string[] | Record<string, boolean | string[]>;
force?: ({
segments?: any;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
} | {
conditions?: any;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
})[] | Record<string, ({
segments?: any;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
} | {
conditions?: any;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
})[]>;
rules?: {
key?: string;
description?: string;
segments?: any;
percentage?: number;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
variationWeights?: Record<string, number>;
}[] | Record<string, {
key?: string;
description?: string;
segments?: any;
percentage?: number;
enabled?: boolean;
variation?: string;
variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
variationWeights?: Record<string, number>;
}[]>;
}>;