import type { ISetting, ISettingColor, ISettingSelectOption, SettingValue } from '@rocket.chat/core-typings'; import type { FindCursor, UpdateFilter, UpdateResult, Document, FindOneAndUpdateOptions, WithId, UpdateOptions } from 'mongodb'; import type { IBaseModel } from './IBaseModel'; import type { DocumentWithProjection, FindOptionsWithProjection } from '../types/DocumentWithProjection'; export interface ISettingsModel extends IBaseModel { getValueById(_id: string): Promise; findNotHidden(params?: { updatedAfter?: Date }): FindCursor; findOneNotHiddenById(_id: string): Promise; findByIds = FindOptionsWithProjection>( _id?: string[] | string, options?: O, ): FindCursor>; updateValueById( _id: string, value: (ISetting['value'] extends undefined ? never : ISetting['value']) | null, options?: UpdateOptions, ): Promise; resetValueById( _id: string, value?: (ISetting['value'] extends undefined ? never : ISetting['value']) | null, ): Promise; incrementValueById(_id: ISetting['_id'], value?: ISetting['value'], options?: FindOneAndUpdateOptions): Promise>; updateOptionsById( _id: ISetting['_id'], options: UpdateFilter['$set'], ): Promise; updateValueNotHiddenById( _id: ISetting['_id'], value: T, ): Promise; updateValueAndEditorById( _id: ISetting['_id'], value: T, editor: ISettingColor['editor'], ): Promise; findNotHiddenPublic( ids?: ISetting['_id'][], ): FindCursor< T extends ISettingColor ? Pick : Pick >; findSetupWizardSettings(): FindCursor; findEnterpriseSettings(): FindCursor; addOptionValueById(_id: ISetting['_id'], option: ISettingSelectOption): Promise; findNotHiddenPublicUpdatedAfter(updatedAt: Date): FindCursor; }