/// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// import { Types } from 'mongoose'; import type { ClientSession } from 'mongoose'; import type { IConfig } from '~/types'; export declare function createConfigMethods(mongoose: typeof import('mongoose')): { listAllConfigs: (filter?: { isActive?: boolean; }, session?: ClientSession) => Promise; findConfigByPrincipal: (principalType: PrincipalType, principalId: string | Types.ObjectId, options?: { includeInactive?: boolean; }, session?: ClientSession) => Promise; getApplicableConfigs: (principals?: Array<{ principalType: string; principalId?: string | Types.ObjectId; }>, session?: ClientSession) => Promise; upsertConfig: (principalType: PrincipalType, principalId: string | Types.ObjectId, principalModel: PrincipalModel, overrides: TCustomConfig, priority: number, session?: ClientSession) => Promise; patchConfigFields: (principalType: PrincipalType, principalId: string | Types.ObjectId, principalModel: PrincipalModel, fields: Record, priority: number, session?: ClientSession) => Promise; unsetConfigField: (principalType: PrincipalType, principalId: string | Types.ObjectId, fieldPath: string, session?: ClientSession) => Promise; deleteConfig: (principalType: PrincipalType, principalId: string | Types.ObjectId, session?: ClientSession) => Promise; toggleConfigActive: (principalType: PrincipalType, principalId: string | Types.ObjectId, isActive: boolean, session?: ClientSession) => Promise; }; export type ConfigMethods = ReturnType;