import { Connection, Document } from 'mongoose';
import { BaseMessage } from 'lexica-dialog-model/dist/Message';
import CRUDRepository from './CRUDRepository';
import { Page } from './Page';
import { Pageable } from './Shared';
interface MessageModel extends BaseMessage, Document {
}
declare class MessageRepository extends CRUDRepository<BaseMessage, MessageModel> {
    constructor(mongoConnection: Connection);
    findByUni(uni: string): Promise<MessageModel[]>;
    findByUniAndSenderId(uni: string, senderId: string): Promise<MessageModel[]>;
    findPageByUniAndSenderId(pageable: Pageable, uni: string, senderId: string): Promise<Page<MessageModel>>;
    findByUniAndSenderIdAndIssueId(uni: string, senderId: string, issueId: string): Promise<MessageModel[]>;
    findByUniAndIssueId(uni: string, issueId: string): Promise<MessageModel[]>;
    findLatestByUniAndIssueId(uni: string, issueId: string): Promise<MessageModel[]>;
}
declare const messageRepository: MessageRepository;
export { MessageModel, MessageRepository, messageRepository };
