/** * Feature Flag Controller * * NestJS controller for feature flag management. * Uses the domain FeatureFlagService directly. * * @fileoverview NestJS controller for feature flags */ import type { FeatureFlagValue, FeatureFlagContext, FeatureFlagEvaluation, FeatureFlag, FeatureFlagRule, CreateFlagRequest } from '@plyaz/types'; import { FeatureFlagService } from '@domain/featureFlags'; import type { FeatureFlagKey } from '@domain/types'; /** * Request DTO for flag evaluation. */ interface EvaluateFlagRequest { context?: FeatureFlagContext; } /** * Feature Flag Controller * * Provides REST endpoints for feature flag management and evaluation. * Uses the domain FeatureFlagService directly. * * @example * ```typescript * // GET /feature-flags/AUTH_GOOGLE/evaluate * // POST /feature-flags * // PUT /feature-flags/AUTH_GOOGLE * ``` */ export declare class FeatureFlagController { private readonly featureFlagService; constructor(featureFlagService: FeatureFlagService); /** * Evaluates a feature flag for the given context. */ evaluateFlag(key: FeatureFlagKey, body?: EvaluateFlagRequest): Promise>; /** * Checks if a feature flag is enabled. */ isEnabled(key: FeatureFlagKey, body?: EvaluateFlagRequest): Promise<{ isEnabled: boolean; }>; /** * Gets all feature flags with their evaluations. */ evaluateAllFlags(body?: EvaluateFlagRequest): Promise>>; /** * Creates a new feature flag. */ createFlag(createData: CreateFlagRequest): Promise>; /** * Updates an existing feature flag. */ updateFlag(key: FeatureFlagKey, updateData: Partial>): Promise>; /** * Deletes a feature flag. */ deleteFlag(key: FeatureFlagKey): Promise<{ isSuccessful: boolean; }>; /** * Sets a manual override for a flag. */ setOverride(key: FeatureFlagKey, value: FeatureFlagValue): Promise<{ isSuccessful: boolean; }>; /** * Removes a manual override for a flag. */ removeOverride(key: FeatureFlagKey): Promise<{ isSuccessful: boolean; }>; /** * Gets all rules for a specific flag. */ getFlagRules(key: FeatureFlagKey): Promise[]>; /** * Forces a refresh of the feature flag cache. */ refreshCache(): Promise<{ isSuccessful: boolean; }>; /** * Gets service health status. */ getHealth(): Promise<{ isInitialized: boolean; provider: string; }>; } export {}; //# sourceMappingURL=feature-flag.controller.d.ts.map