///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
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;