///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
import { Types } from 'mongoose';
import type { AnyBulkWriteOperation, ClientSession, PipelineStage, DeleteResult } from 'mongoose';
import type { AclEntry, IAclEntry } from '~/types';
export declare function createAclEntryMethods(mongoose: typeof import('mongoose')): {
findEntriesByPrincipal: (principalType: string, principalId: string | Types.ObjectId, resourceType?: string) => Promise;
findEntriesByResource: (resourceType: string, resourceId: string | Types.ObjectId) => Promise;
findEntriesByPrincipalsAndResource: (principalsList: Array<{
principalType: string;
principalId?: string | Types.ObjectId;
}>, resourceType: string, resourceId: string | Types.ObjectId) => Promise;
hasPermission: (principalsList: Array<{
principalType: string;
principalId?: string | Types.ObjectId;
}>, resourceType: string, resourceId: string | Types.ObjectId, permissionBit: number) => Promise;
getEffectivePermissions: (principalsList: Array<{
principalType: string;
principalId?: string | Types.ObjectId;
}>, resourceType: string, resourceId: string | Types.ObjectId) => Promise;
getEffectivePermissionsForResources: (principalsList: Array<{
principalType: string;
principalId?: string | Types.ObjectId;
}>, resourceType: string, resourceIds: Array) => Promise