import type { ResolutionDetails, Logger, EvaluationContext, EvaluationDetails, FlagValue, FlagValueType, JsonValue, FlagMetadata } from '@openfeature/core'; import type { FeatureFlag } from './feature-flag'; import type { Storage } from './storage'; import type { FlagdCoreOptions } from './options'; type ResolutionDetailsWithFlagMetadata = Required, 'flagMetadata'>> & ResolutionDetails; /** * Expose flag configuration setter and flag resolving methods. */ export declare class FlagdCore implements Storage { private _logger; private _storage; constructor(storage?: Storage, logger?: Logger, options?: FlagdCoreOptions); setConfigurations(flagConfig: string): string[]; getFlag(key: string): FeatureFlag | undefined; getFlags(): Map; getFlagSetMetadata(): FlagMetadata; /** * Resolve the flag evaluation to a boolean value. * @param flagKey - The key of the flag to be evaluated. * @param defaultValue - The default value to be returned if the flag is not found. * @param evalCtx - The evaluation context to be used for targeting. * @param logger - The logger to be used to troubleshoot targeting errors. Overrides the default logger. * @returns - The resolved value and the reason for the resolution. */ resolveBooleanEvaluation(flagKey: string, defaultValue: boolean, evalCtx?: EvaluationContext, logger?: Logger): ResolutionDetailsWithFlagMetadata; /** * Resolve the flag evaluation to a string value. * @param flagKey - The key of the flag to be evaluated. * @param defaultValue - The default value to be returned if the flag is not found. * @param evalCtx - The evaluation context to be used for targeting. * @param logger - The logger to be used to troubleshoot targeting errors. Overrides the default logger. * @returns - The resolved value and the reason for the resolution. */ resolveStringEvaluation(flagKey: string, defaultValue: string, evalCtx?: EvaluationContext, logger?: Logger): ResolutionDetailsWithFlagMetadata; /** * Resolve the flag evaluation to a numeric value. * @param flagKey - The key of the flag to evaluate. * @param defaultValue - The default value to return if the flag is not found or the evaluation fails. * @param evalCtx - The evaluation context to be used for targeting. * @param logger - The logger to be used to troubleshoot targeting errors. Overrides the default logger. * @returns - The resolved value and the reason for the resolution. */ resolveNumberEvaluation(flagKey: string, defaultValue: number, evalCtx?: EvaluationContext, logger?: Logger): ResolutionDetailsWithFlagMetadata; /** * Resolve the flag evaluation to an object value. * @template T - The type of the return value. * @param flagKey - The key of the flag to resolve. * @param defaultValue - The default value to use if the flag is not found. * @param evalCtx - The evaluation context to be used for targeting. * @param logger - The logger to be used to troubleshoot targeting errors. Overrides the default logger. * @returns - The resolved value and the reason for the resolution. */ resolveObjectEvaluation(flagKey: string, defaultValue: T, evalCtx?: EvaluationContext, logger?: Logger): ResolutionDetailsWithFlagMetadata; /** * Resolve the flag evaluation for all enabled flags. * @param evalCtx - The evaluation context to be used for targeting. * @param logger - The logger to be used to troubleshoot targeting errors. Overrides the default logger. * @returns - The list of evaluation details for all enabled flags. */ resolveAll(evalCtx?: EvaluationContext, logger?: Logger): EvaluationDetails[]; /** * Resolves the value of a flag based on the specified type. * @template T - The type of the flag value. * @param {FlagValueType} type - The type of the flag value. * @param {string} flagKey - The key of the flag. * @param {T} defaultValue - The default value of the flag. * @param {EvaluationContext} evalCtx - The evaluation context for targeting rules. * @param {Logger} logger - The logger to be used to troubleshoot targeting errors. Overrides the default logger. * @returns {ResolutionDetailsWithFlagMetadata} - The resolved value and the reason for the resolution. */ resolve(type: FlagValueType, flagKey: string, defaultValue: T, evalCtx?: EvaluationContext, logger?: Logger): ResolutionDetailsWithFlagMetadata; } export {};