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