import type { BaseChannel, BaseCreateMessage, BaseMessage, BaseUser, } from "lib/common"; export interface MessagesServiceInterface< U extends BaseUser = BaseUser, M extends BaseMessage = BaseMessage, C extends BaseChannel = BaseChannel, CM extends BaseCreateMessage = BaseCreateMessage, > { sendToUser(user: U, createMessageInput: CM): Promise; sendToChannel(channel: C, createMessageInput: CM): Promise; logMessage(message: M): Promise; }