import RPCClient, { OpenDBClient } from './client'
import Keystore from './libs/keystore'
import Bp from './libs/bp'

export default class OPENDB {
  public client: OpenDBClient
  public bp: Bp
  public options?: object
  // TSES-lint: (any - unknown) Unexpected any. Specify a different type
  public keystore?: unknown

  constructor(apiNodeEndpoint: string, options?: object) {
    this.options = options
    this.client = new RPCClient(apiNodeEndpoint)
    this.bp = new Bp(this.client)
    this.keystore = new Keystore()
  }
  // TSES-lint: (any - unknown) Unexpected any. Specify a different type
  public async connect(): Promise<unknown> {
    return await this.client.connect()
  }
}
