import { EnvironmentId, FeatureFlagsKeysEnum, OrganizationId, UserId } from '@novu/shared'; export { EnvironmentId, FeatureFlagsKeysEnum, OrganizationId, UserId }; export interface IFeatureFlagContext { environmentId: EnvironmentId; organizationId: OrganizationId; userId: UserId; } export interface IGlobalFeatureFlag { key: FeatureFlagsKeysEnum; defaultValue: T; } export type IContextualFeatureFlag = IGlobalFeatureFlag & IFeatureFlagContext; export interface IFeatureFlagsService { getWithAnonymousContext: (key: FeatureFlagsKeysEnum, defaultValue: T) => Promise; getWithEnvironmentContext: (key: FeatureFlagsKeysEnum, defaultValue: T, environmentId: EnvironmentId) => Promise; getWithOrganizationContext: (key: FeatureFlagsKeysEnum, defaultValue: T, organizationId: OrganizationId) => Promise; getWithUserContext: (key: FeatureFlagsKeysEnum, defaultValue: T, userId: UserId) => Promise; gracefullyShutdown: () => Promise; initialize: () => Promise; isEnabled: boolean; } //# sourceMappingURL=types.d.ts.map