import type { FeatureFlagConfig, FeatureFlagUser, FeatureFlagResponse, FeatureFlagDefinition, IFeatureFlagService, IFeatureFlagRegistry } from '../types';
import { ErrorBehaviour } from '../types';
export declare class FeatureFlagService implements IFeatureFlagService {
    private provider;
    private flagRegistry;
    constructor(registry?: IFeatureFlagRegistry);
    static create(config?: Partial<FeatureFlagConfig>, flags?: FeatureFlagDefinition[]): Promise<FeatureFlagService>;
    static create(config?: Partial<FeatureFlagConfig>, registry?: IFeatureFlagRegistry): Promise<FeatureFlagService>;
    initialize(config?: Partial<FeatureFlagConfig>): Promise<void>;
    isFeatureEnabled(user: FeatureFlagUser, flagName: string, onErrorBehaviour?: ErrorBehaviour): Promise<FeatureFlagResponse>;
    isFeatureEnabledLatest(user: FeatureFlagUser, flagName: string, onErrorBehaviour?: ErrorBehaviour): Promise<FeatureFlagResponse>;
    getFeatureValue(user: FeatureFlagUser, flagName: string, onErrorBehaviour?: ErrorBehaviour): Promise<FeatureFlagResponse>;
    getFeatureValueLatest(user: FeatureFlagUser, flagName: string, onErrorBehaviour?: ErrorBehaviour): Promise<FeatureFlagResponse>;
    registerFlags(flags: FeatureFlagDefinition[]): void;
    getRegisteredFlag(key: string): FeatureFlagDefinition | undefined;
    private processProviderResult;
    private createDefaultResponse;
}
//# sourceMappingURL=service.d.ts.map