import type { FlagValue, FlagMetadata, ResolutionDetails, JsonValue, Logger, EvaluationContext, ResolutionReason } from '@openfeature/core'; import { ErrorCode } from '@openfeature/core'; import type { FlagdCoreOptions } from './options'; /** * Flagd flag configuration structure mapping to schema definition. */ export interface Flag { state: 'ENABLED' | 'DISABLED'; defaultVariant: string; variants: { [key: string]: FlagValue; }; targeting?: string; metadata?: FlagMetadata; } type RequiredResolutionDetails = Omit, 'value'> & { flagMetadata: FlagMetadata; } & ({ reason: 'ERROR'; errorCode: ErrorCode; errorMessage: string; value?: never; } | { value?: T; variant?: string; reason: 'DEFAULT'; } | { value: T; reason: Exclude; variant: string; errorCode?: never; errorMessage?: never; }); /** * Flagd flag configuration structure for internal reference. */ export declare class FeatureFlag { private readonly logger; private readonly _key; private readonly _state; private readonly _defaultVariant; private readonly _variants; private readonly _hash; private readonly _metadata; private readonly _targeting?; private readonly _targetingParseErrorMessage?; constructor(key: string, flag: Flag, logger: Logger, options?: FlagdCoreOptions); get key(): string; get hash(): string; get state(): string; get defaultVariant(): string | undefined; get variants(): Map; get metadata(): FlagMetadata; evaluate(evalCtx: EvaluationContext, logger?: Logger): RequiredResolutionDetails; validateStructure(): void; } export {};