import type { AppFlags, FeatureState } from "./config"; /** * Interface for the core FeaturesRepository. * This interface defines methods for checking feature flags and team feature access. */ export interface IFeaturesRepository { checkIfFeatureIsEnabledGlobally(slug: keyof AppFlags): Promise; checkIfUserHasFeature(userId: number, slug: string): Promise; checkIfUserHasFeatureNonHierarchical(userId: number, slug: string): Promise; checkIfTeamHasFeature(teamId: number, slug: keyof AppFlags): Promise; getTeamsWithFeatureEnabled(slug: keyof AppFlags): Promise; setTeamFeatureState( teamId: number, featureId: keyof AppFlags, state: FeatureState, assignedBy: string ): Promise; }