/** * Feature Flag Domain Service (Frontend) * * Frontend-specific domain service for feature flag management. * Implements FeatureFlagServiceInterface for clean dependency injection. * * @example * ```tsx * // With ServiceRegistry (auto-initialization) * await ServiceRegistry.initialize({ * services: [{ service: FeatureFlagDomainService, config: { cacheTtl: 300 } }], * }); * const service = ServiceRegistry.get('featureFlags'); * * // Manual creation with provider * const service = new FeatureFlagDomainService({ * provider, * store: useFeatureFlagStore.getState(), * }); * await service.fetchAndSyncAll({ userId: user.id }); * ``` */ import type { FeatureFlag, FeatureFlagRule, FeatureFlagContext, FeatureFlagValue, FeatureFlagEvaluation, CreateFlagRequest } from '@plyaz/types'; import { BaseFrontendDomainService } from '../base/BaseFrontendDomainService'; import type { CoreFrontendFeatureFlagEventType, CoreFeatureFlagStore, CoreFeatureFlagServiceConfig, CoreFeatureFlagServiceInitConfig, CoreFeatureFlagServiceInterface, CoreServiceCreateOptions } from '@plyaz/types/core'; /** * Feature Flag Domain Service (Frontend) * * Frontend-specific domain service for feature flag management. * Implements FeatureFlagServiceInterface for clean dependency injection. * * @example * ```tsx * // With ServiceRegistry (auto-initialization) * await ServiceRegistry.initialize({ * services: [{ service: FeatureFlagDomainService, config: { cacheTtl: 300 } }], * }); * const service = ServiceRegistry.get('featureFlags'); * * // Manual creation with provider * const service = new FeatureFlagDomainService({ * provider, * store: useFeatureFlagStore.getState(), * }); * await service.fetchAndSyncAll({ userId: user.id }); * ``` */ export declare class FrontendFeatureFlagDomainService extends BaseFrontendDomainService> implements CoreFeatureFlagServiceInterface { static readonly serviceKey: "featureFlags"; /** Build API client for feature flags */ private static buildApiClient; /** Build feature flag provider */ private static buildProvider; /** * Factory method for ServiceRegistry auto-initialization. */ static create(config: CoreFeatureFlagServiceInitConfig, options?: CoreServiceCreateOptions): Promise; /** * Event prefix for all events emitted by this service * Required by BaseFrontendDomainService */ protected eventPrefix: string; private readonly provider; constructor(config: CoreFeatureFlagServiceConfig); isAvailable(): boolean; dispose(): void; refresh(): Promise; evaluate(key: TKey, context?: FeatureFlagContext): Promise>; isEnabled(key: TKey, context?: FeatureFlagContext): Promise; getValue(key: TKey, context?: FeatureFlagContext): Promise; evaluateAll(context?: FeatureFlagContext): Promise>>; fetchAndSyncAll(context?: FeatureFlagContext): Promise>; createFlag(data: CreateFlagRequest): Promise>; updateFlag(key: TKey, data: Partial>): Promise>; deleteFlag(key: TKey): Promise; getRules(key: TKey): Promise[]>; getAllRules(): Promise[]>; setOverride(key: TKey, value: FeatureFlagValue): void; removeOverride(key: TKey): void; clearOverrides(): void; subscribe(callback: () => void): () => void; on(event: CoreFrontendFeatureFlagEventType, handler: (data: unknown) => void): () => void; protected syncToStores(flags: Record, replace?: boolean): void; private toValues; } //# sourceMappingURL=FrontendFeatureFlagDomainService.d.ts.map