/** * Feature Flag Mapper * * Handles transformation between different feature flag data representations: * - API Response (DTO) → Domain Entity * - Domain Entity → Store State * - Domain → API Request (DTO) * * @fileoverview Feature flag data mapper * @version 1.0.0 */ import { BaseMapper } from '../../base/BaseMapper'; import type { FeatureFlag, FeatureFlagValue, FeatureFlagRule, FeatureFlagEvaluation, CreateFlagRequest, FetchFeatureFlagDataResponse, FeatureFlagStoreState, FeatureFlagResponseDTO, FeatureFlagRuleDTO, FeatureFlagEvaluationDTO, FetchAllFlagsResponseDTO } from '@plyaz/types/features'; export type { FeatureFlagResponseDTO, FeatureFlagRuleDTO, FeatureFlagEvaluationDTO, FetchAllFlagsResponseDTO, } from '@plyaz/types/features'; /** * Feature Flag Mapper * * Transforms feature flag data between API, domain, and store representations. */ export declare class FeatureFlagMapper extends BaseMapper, FeatureFlagResponseDTO, unknown, unknown, Partial, unknown, Partial> { /** * Transform API response DTO to domain entity * Handles both snake_case (DTO) and camelCase (Entity) input formats */ toDomain(dto: FeatureFlagResponseDTO | FeatureFlag): FeatureFlag; /** * Transform domain entity to API request DTO */ toCreateDTO(entity: Partial>): CreateFlagRequest; /** * Transform domain entity to patch request DTO */ toPatchDTO(entity: Partial>): Partial>; /** * Transform API rule DTO to domain rule * Handles both snake_case (DTO) and camelCase (Entity) input formats */ toRuleDomain(dto: FeatureFlagRuleDTO | FeatureFlagRule): FeatureFlagRule; /** * Transform API evaluation DTO to domain evaluation * Handles both snake_case (DTO) and camelCase (Entity) input formats */ toEvaluationDomain(dto: FeatureFlagEvaluationDTO | FeatureFlagEvaluation): FeatureFlagEvaluation; /** * Transform API fetch response to domain response */ toFetchDataResponse(dto: FetchAllFlagsResponseDTO): FetchFeatureFlagDataResponse; /** * Transform single domain flag to partial store state format * Returns partial state that can be merged with existing store state */ toStoreState(flag: FeatureFlag): Partial; /** * Transform domain flags array to store state format */ toStoreStateList(flags: FeatureFlag[]): Partial; /** * Transform evaluation results to store flags format */ evaluationsToStoreFlags(evaluations: Record>): Record; /** * Transform simple flags record to domain flags array * (for providers that return simple key-value pairs) */ simpleFlagsToDomain(flags: Record, environment?: string): FeatureFlag[]; /** * Infer flag type from value */ private inferType; } /** * Singleton instance for convenience */ export declare const featureFlagMapper: FeatureFlagMapper; //# sourceMappingURL=FeatureFlagMapper.d.ts.map