import { Document } from 'mongoose'; import { AccountsService } from '../../modules'; import { IsViewable } from '../../types'; export type ViewedByFetchOptions = { includeViewedBy?: boolean; includeViewedByIds?: boolean; }; export declare function ViewedByOptions any>(Base: TBase, options: { requiredPermissions?: string[]; }): { new (...args: any[]): { [x: string]: any; includeViewedBy?: boolean; includeViewedByIds?: boolean; viewedBy?: string; }; } & TBase; export declare function populateViewedBy(options: { includeViewedBy?: boolean; includeViewedByIds?: boolean; viewedBy?: string; }, items: (Document & IsViewable)[], accountsService: AccountsService): Promise;