/// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// import { PrincipalType } from 'librechat-data-provider'; import type { Types, ClientSession } from 'mongoose'; import type { SystemCapability } from '~/types/admin'; import type { ISystemGrant } from '~/types'; export declare function createSystemGrantMethods(mongoose: typeof import('mongoose')): { grantCapability: ({ principalType, principalId, capability, tenantId, grantedBy, }: { principalType: PrincipalType; principalId: string | Types.ObjectId; capability: SystemCapability; tenantId?: string | undefined; grantedBy?: string | Types.ObjectId | undefined; }, session?: ClientSession) => Promise; seedSystemGrants: () => Promise; revokeCapability: ({ principalType, principalId, capability, tenantId, }: { principalType: PrincipalType; principalId: string | Types.ObjectId; capability: SystemCapability; tenantId?: string | undefined; }, session?: ClientSession) => Promise; hasCapabilityForPrincipals: ({ principals, capability, tenantId, }: { principals: Array<{ principalType: PrincipalType; principalId?: string | Types.ObjectId; }>; capability: SystemCapability; tenantId?: string | undefined; }) => Promise; getHeldCapabilities: ({ principals, capabilities, tenantId, }: { principals: Array<{ principalType: PrincipalType; principalId?: string | Types.ObjectId; }>; capabilities: SystemCapability[]; tenantId?: string | undefined; }) => Promise>; listGrants: (options?: { tenantId?: string; principalTypes?: PrincipalType[]; limit?: number; offset?: number; }) => Promise; countGrants: (options?: { tenantId?: string; principalTypes?: PrincipalType[]; }) => Promise; getCapabilitiesForPrincipal: ({ principalType, principalId, tenantId, }: { principalType: PrincipalType; principalId: string | Types.ObjectId; tenantId?: string | undefined; }) => Promise; getCapabilitiesForPrincipals: ({ principals, tenantId, }: { principals: Array<{ principalType: PrincipalType; principalId: string | Types.ObjectId; }>; tenantId?: string | undefined; }) => Promise; deleteGrantsForPrincipal: (principalType: PrincipalType, principalId: string | Types.ObjectId, options?: { tenantId?: string; session?: ClientSession; }) => Promise; }; export type SystemGrantMethods = ReturnType;