import { ModuleRef } from "@nestjs/core";
import { EntityManager } from 'typeorm';
import { PostChatterMessageDto } from '../dtos/post-chatter-message.dto';
import { UpdateChatterNoteMessageDto } from '../dtos/update-chatter-note-message.dto';
import { ModelMetadataHelperService } from '../helpers/model-metadata-helper.service';
import { ChatterMessageDetailsRepository } from '../repository/chatter-message-details.repository';
import { ChatterMessageRepository } from '../repository/chatter-message.repository';
import { FieldMetadataRepository } from '../repository/field-metadata.repository';
import { MediaRepository } from '../repository/media.repository';
import { ModelMetadataRepository } from '../repository/model-metadata.repository';
import { CRUDService } from '../services/crud.service';
import { ChatterMessage } from '../entities/chatter-message.entity';
import { RequestContextService } from './request-context.service';
export declare class ChatterMessageService extends CRUDService<ChatterMessage> {
    readonly entityManager: EntityManager;
    readonly repo: ChatterMessageRepository;
    readonly chatterMessageDetailsRepo: ChatterMessageDetailsRepository;
    readonly mediaRepository: MediaRepository;
    readonly fieldMetadataRepo: FieldMetadataRepository;
    readonly moduleRef: ModuleRef;
    private readonly modelMetadataRepo;
    readonly requestContextService: RequestContextService;
    private readonly modelMetadataHelperService;
    private readonly _logger;
    constructor(entityManager: EntityManager, repo: ChatterMessageRepository, chatterMessageDetailsRepo: ChatterMessageDetailsRepository, mediaRepository: MediaRepository, fieldMetadataRepo: FieldMetadataRepository, moduleRef: ModuleRef, modelMetadataRepo: ModelMetadataRepository, requestContextService: RequestContextService, modelMetadataHelperService: ModelMetadataHelperService);
    private resolveMessageUserId;
    private resolveMessageUser;
    private stampMessageAuditFields;
    private isEditableCustomNoteMessage;
    private parseAttachmentIds;
    markCompleted(id: number): Promise<ChatterMessage>;
    updateCustomNoteMessage(id: number, updateDto: UpdateChatterNoteMessageDto, files?: Express.Multer.File[]): Promise<ChatterMessage>;
    postMessage(postDto: PostChatterMessageDto, files?: Express.Multer.File[]): Promise<ChatterMessage>;
    postAuditMessageOnInsert(entity: any, modelName: string, messageQueue?: boolean, userId?: number | null): Promise<void>;
    postAuditMessageOnUpdate(entity: any, modelName: string, databaseEntity: any, updatedColumns?: any[], messageQueue?: boolean, userId?: number | null): Promise<void>;
    postAuditMessageOnDelete(modelName: string, databaseEntity: any, messageQueue?: boolean, userId?: number | null): Promise<void>;
    private formatFieldValue;
    private formatFieldValueDisplay;
    private hasValueChanged;
    private hasRelationValueChanged;
    private extractRelationId;
    private extractRelationIds;
    private populateRelationFields;
    private logHeapUsed;
    getChatterMessages(entityId: number, entityName: string, query: any): Promise<{
        meta: {
            totalRecords: number;
            currentPage: number;
            nextPage: number;
            prevPage: number;
            totalPages: number;
            perPage: number;
        };
        records: ChatterMessage[];
    }>;
}
//# sourceMappingURL=chatter-message.service.d.ts.map