import { EvaluationResultWithMetadata } from '../flagsmith-engine/evaluation/models.js'; import { FeatureStateModel } from '../flagsmith-engine/features/models.js'; import { AnalyticsProcessor } from './analytics.js'; type FlagValue = string | number | boolean | undefined | null; /** * A Flagsmith feature. It has an enabled/disabled state, and an optional {@link FlagValue}. */ export declare class BaseFlag { /** * Indicates whether this feature is enabled. */ enabled: boolean; /** * An optional {@link FlagValue} for this feature. */ value: FlagValue; /** * If true, the state for this feature was determined by a default flag handler. See {@link DefaultFlag}. */ isDefault: boolean; constructor(value: FlagValue, enabled: boolean, isDefault: boolean); } /** * A {@link BaseFlag} returned by a default flag handler when flag evaluation fails. * @see FlagsmithConfig#defaultFlagHandler */ export declare class DefaultFlag extends BaseFlag { constructor(value: FlagValue, enabled: boolean); } /** * A Flagsmith feature retrieved from a successful flag evaluation. */ export declare class Flag extends BaseFlag { /** * An identifier for this feature, unique in a single Flagsmith installation. */ featureId: number; /** * The programmatic name for this feature, unique per Flagsmith project. */ featureName: string; /** * The reason for this feature, unique per Flagsmith project. */ reason?: string; constructor(params: { value: FlagValue; enabled: boolean; isDefault?: boolean; featureId: number; featureName: string; reason?: string; }); static fromFeatureStateModel(fsm: FeatureStateModel, identityId: number | string | undefined): Flag; static fromAPIFlag(flagData: any): Flag; } export declare class Flags { flags: { [key: string]: Flag; }; defaultFlagHandler?: (featureName: string) => DefaultFlag; analyticsProcessor?: AnalyticsProcessor; constructor(data: { flags: { [key: string]: Flag; }; defaultFlagHandler?: (v: string) => DefaultFlag; analyticsProcessor?: AnalyticsProcessor; }); static fromEvaluationResult(evaluationResult: EvaluationResultWithMetadata, defaultFlagHandler?: (v: string) => DefaultFlag, analyticsProcessor?: AnalyticsProcessor): Flags; static fromFeatureStateModels(data: { featureStates: FeatureStateModel[]; analyticsProcessor?: AnalyticsProcessor; defaultFlagHandler?: (f: string) => DefaultFlag; identityID?: string | number; }): Flags; static fromAPIFlags(data: { apiFlags: { [key: string]: any; }[]; analyticsProcessor?: AnalyticsProcessor; defaultFlagHandler?: (v: string) => DefaultFlag; }): Flags; allFlags(): Flag[]; getFlag(featureName: string): BaseFlag; getFeatureValue(featureName: string): FlagValue; isFeatureEnabled(featureName: string): boolean; } export {};