import { ChatSubscriber, Persona } from './../../../shared/entities/user'; import * as IShared from '../../../shared/interface'; export type Entity = ChatSubscriber; export declare const Route = "chat_subscriber"; export declare const UpperName = "ChatSubscriber"; export declare const LowerName: string; export interface ICreateOrUpdateRequest { chat_document_header_id: string; personas_ids: string[]; } export interface IFindDocumentHeaderSubscribersRequest { owner_id?: string; chat_document_header_id: string; } export interface IFindSubscribedDocumentHeadersRequest { owner_id: string; } export type IPersona = Pick; export interface IEntityWithPersona extends Pick { persona: IPersona; } export interface IEntityWithPersonaAndSubscriptions extends IPersona { subscriptions: Pick[]; } export interface IRepository { findDocumentHeaderSubscribers(selector: IFindDocumentHeaderSubscribersRequest): Promise; findSubscribedDocumentHeaders(selector: IFindSubscribedDocumentHeadersRequest): Promise; findById(selector: IShared.IFindByIdRequest): Promise; createOrUpdate(data: ICreateOrUpdateRequest): Promise; deleteOne(selector: IShared.IFindByIdRequest): Promise; deleteByDocumentHeader(selector: IShared.IFindByIdRequest): Promise; } export type IController = IShared.IEntityWithUserToken;