import { type Context } from '@txstate-mws/graphql-server'; import type { FastifyRequest } from 'fastify'; import { AssetRule, DataRule, PageRule, SiteRule, type GlobalRuleGrants, type TemplateRule, type Role, type Group, type User } from '../internal.js'; /** * Throw away a user's cached roles, rules, and owned/managed sites so their next request * rebuilds them from the database instead of waiting out the 30 second freshness window. */ export declare function invalidateAuthInfo(login: string): Promise; interface AuthInfo { roles: Role[]; pageRules: PageRule[]; assetRules: AssetRule[]; siteRules: SiteRule[]; dataRules: DataRule[]; globalGrants: Record; templateRules: TemplateRule[]; groupsById: Record; user: User | undefined; pageSiteIds?: string[]; ownedOrManagedSiteIds?: string[]; } export interface DGContext extends Context { authInfo: AuthInfo; login: string; systemCtx: DGContext; prefetch: () => Promise; } export type DGContextClass = typeof Context & (new (req: FastifyRequest) => DGContext); export type DGMockContextClass = typeof Context & (new (claims: any) => DGContext); export declare function dgContextMixin(Ctx: typeof Context): DGContextClass; export declare const DGMockContext: DGMockContextClass; export {};