import { FeatureStateModel } from '../flagsmith-engine/features/models.js';
import { AnalyticsProcessor } from './analytics.js';
export declare class BaseFlag {
    enabled: boolean;
    value: string | number | boolean | undefined;
    isDefault: boolean;
    constructor(value: string | number | boolean | undefined, enabled: boolean, isDefault: boolean);
}
export declare class DefaultFlag extends BaseFlag {
    constructor(value: string | number | boolean | undefined, enabled: boolean);
}
export declare class Flag extends BaseFlag {
    featureId: number;
    featureName: string;
    constructor(params: {
        value: string | number | boolean | undefined;
        enabled: boolean;
        isDefault?: boolean;
        featureId: number;
        featureName: 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 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): any;
    isFeatureEnabled(featureName: string): boolean;
}
