import { FeatureEntitlementsContext, PermissionsEntitlementsContext, RouteEntitlementsContext, EntityEntitlementsContext } from './request-context'; import { SubjectContext } from './subject-context'; import { RequestContextType } from './request-context-type.enum'; export type EntitlementsQueryRequestContext = | Omit | Omit | Omit | Omit; export interface EntitlementsQuery { subjectContext: SubjectContext; requestContext: EntitlementsQueryRequestContext; } export type EntitlementsDynamicQueryRequestContext = T extends RequestContextType.Permission ? PermissionsEntitlementsContext : T extends RequestContextType.Feature ? FeatureEntitlementsContext : T extends RequestContextType.Route ? RouteEntitlementsContext : T extends RequestContextType.Entity ? EntityEntitlementsContext : never; export interface EntitlementsDynamicQuery { subjectContext: SubjectContext; requestContext: EntitlementsDynamicQueryRequestContext; }