import { CreateFeatureFlagInput, UpdateFeatureFlagInput, FeatureFlagWithOverrides, TargetingAttributes } from './feature-flag.interface'; export interface OverrideCriteria { attributes: TargetingAttributes; } export interface UpdateOverrideInput { enabled: boolean; priority: number; } export interface FeatureFlagRepository { createFlag(input: CreateFeatureFlagInput): Promise; updateFlag(key: string, input: UpdateFeatureFlagInput): Promise; archiveFlag(key: string): Promise; findFlagByKey(key: string): Promise; findFlagIdByKey(key: string): Promise; findAllActiveFlags(): Promise; findOverride(flagId: string, criteria: OverrideCriteria): Promise<{ id: string; } | null>; createOverride(flagId: string, criteria: OverrideCriteria, enabled: boolean, priority: number): Promise; updateOverride(id: string, input: UpdateOverrideInput): Promise; deleteOverride(id: string): Promise; }