abstract class Client {
public abstract init(): Promise<void>;
public abstract register(params: {
account: string;
private?: boolean;
}): Promise<string>;
public abstract resolve(params: {
account: string;
}): Promise<string>;
public abstract invite(params: {
account: string;
invite: Invite;
}): Promise<number>;
public abstract accept(params: {
inviteId: number;
}): Promise<string>;
public abstract reject(params: {
inviteId: string;
}): Promise<void>;
public abstract message(params: {
topic: string;
message: string;
media?: Media
}): Promise<void>;
public abstract ping(params: {
topic: string;
}): Promise<void>
public abstract leave(params: {
topic: string;
}): Promise<void>;
public abstract addContact(params: {
account: string;
publicKey: string;
}): Promise<void>
public abstract getInvites(params: {
account: string;
}): Promise<Map<string, Invite>>
public abstract getThreads(params: {
account: string;
}): Promise<Map<string, Thread>>;
public abstract getMessages(params: {
topic: string;
}): Promise<[Message]>;
public abstract on("chat_invite", ({ id: number, invite: Invite }) => {}): void;
public abstract on("chat_joined", ({ topic: string }) => {}): void;
public abstract on("chat_message", ({ topic: string, payload: Message }) => {}): void;
public abstract on("chat_left", ({ topic: string }) => {}): void;
}