import { DialogEntity } from '../entity/DialogEntity'; import { FunctionTypeVoidToVoid } from '../../CommonTypes/BaseViewModel'; import { PaginatedResult, Pagination } from './Pagination'; export interface IDialogsRepository { saveDialogToLocal(dialog: DialogEntity): Promise; createDialogInRemote(dialog: DialogEntity): Promise; updateDialogInLocal(dialog: DialogEntity): Promise; updateDialogInRemote(dialog: DialogEntity): Promise; getDialogFromLocal(dialogId: string): Promise; getDialogFromRemote(dialogId: string): Promise; getDialogsFromLocal(pagination?: Pagination): Promise>; getDialogsFromRemote( pagination?: Pagination, ): Promise>; deleteDialogFromLocal(dialogId: string): Promise; deleteDialogFromRemote(dialogId: string): Promise; deleteUsersFromDialogFromRemote( dialogId: string, userIds: Array, ): Promise; subscribeLocalSync(subscriber: FunctionTypeVoidToVoid): void; unsubscribeLocalSync(): void; isLocalSynced(): Promise; setLocalSynced(synced: boolean): void; release(): void; }