import type { EvaluationContext, Hook, JsonValue, Logger, Provider, ResolutionDetails, Tracking, TrackingEventDetails } from '@openfeature/server-sdk'; import { OpenFeatureEventEmitter } from '@openfeature/server-sdk'; import type { GoFeatureFlagProviderOptions } from './go-feature-flag-provider-options'; export declare class GoFeatureFlagProvider implements Provider, Tracking { metadata: { name: string; }; readonly runsOn = "server"; events: OpenFeatureEventEmitter; hooks: Hook[]; /** The options for the provider. */ private readonly options; /** The logger for the provider. */ private readonly logger?; /** The evaluation service for the provider. */ private readonly evaluator; /** The event publisher for the provider. */ private readonly eventPublisher; constructor(options: GoFeatureFlagProviderOptions, logger?: Logger); /** @inheritdoc */ track(trackingEventName: string, context?: EvaluationContext, trackingEventDetails?: TrackingEventDetails): void; /** @inheritdoc */ resolveBooleanEvaluation(flagKey: string, defaultValue: boolean, context: EvaluationContext): Promise>; /** @inheritdoc */ resolveStringEvaluation(flagKey: string, defaultValue: string, context: EvaluationContext): Promise>; /** @inheritdoc */ resolveNumberEvaluation(flagKey: string, defaultValue: number, context: EvaluationContext): Promise>; resolveObjectEvaluation(flagKey: string, defaultValue: T, context: EvaluationContext): Promise>; /** * Start the provider and initialize the event publisher. */ initialize(): Promise; /** * Dispose the provider and stop the event publisher. */ onClose(): Promise; /** * Get the evaluator based on the evaluation type specified in the options. */ private getEvaluator; /** * Initialize the hooks for the provider. */ private initializeHooks; /** * Validates the input options provided when creating the provider. * @param options Options used while creating the provider * @throws {InvalidOptionsException} if no options are provided, or we have a wrong configuration. */ private validateInputOptions; }