abstract class Client {
  
  
  public abstract init(params: { core: CoreClient }): Promise<void>;
  
  public abstract getMessage(params: { account: string }): Promise<string>;
  
  public abstract register(params: { account: string, signature: string }): Promise<void>;
  
  public abstract isRegistered(params: { account: string }): boolean;
  
  
  public abstract create(params: { account: string, store: string }): Promise<void>;
  
  public abstract set(params: { account: string, store: string, key: string, value: string }): Promise<boolean>;
  
  public abstract delete(params: { account: string, store: string, key: string }): Promise<boolean>
  
  public abstract getStores(params: { account: string }): Promise<StoreMap>;
  
  
  public abstract on("sync_update", (account: string, store: string, update: StoreUpdate) => {}): void;
}