/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */

import BN from "bn.js";

export type TxID = { transactionId: string };

export interface KonaNetspaces {
  DEFAULT_ADMIN_ROLE(): Promise<string>;

  LIQUIDITY_PROVIDER_ROLE(): Promise<string>;

  PROPERTY_MANAGER_ROLE(): Promise<string>;

  addLiquidityInBrz: {
    ({ _total }: { _total: number | BN | string }): Promise<TxID>;
  };

  availableBrzInPool(): Promise<BN>;

  cancelEscrow: {
    ({ _property }: { _property: string }): Promise<TxID>;
  };

  escrows({
    arg0,
  }: {
    arg0: string;
  }): Promise<{
    enabled: boolean;
    createdOn: BN;
    createdBy: string;
    amount: BN;
    property: {
      firstResidence: boolean;
      lastValue: BN;
      lastValueDate: BN;
      hasPropertyRights: boolean;
      isResidential: boolean;
    };
    creditLimit: BN;
    withdrawnOn: BN;
    maturity: BN;
    totalPrincipal: BN;
    totalInterests: BN;
    rollRequested: boolean;
  }>;

  executeLoan: {
    ({ _property }: { _property: string }): Promise<TxID>;
  };

  getRoleAdmin({ role }: { role: string }): Promise<string>;

  grantRole: {
    ({ role, account }: { role: string; account: string }): Promise<TxID>;
  };

  hasRole({
    role,
    account,
  }: {
    role: string;
    account: string;
  }): Promise<boolean>;

  recoverETH: {
    ({ _amount }: { _amount: number | BN | string }): Promise<TxID>;
  };

  recoverTokens: {
    ({
      _amount,
      _asset,
    }: {
      _amount: number | BN | string;
      _asset: string;
    }): Promise<TxID>;
  };

  removeBrzLiquidity: {
    ({ _total }: { _total: number | BN | string }): Promise<TxID>;
  };

  renounceRole: {
    ({ role, account }: { role: string; account: string }): Promise<TxID>;
  };

  repayLoan: {
    ({ _property }: { _property: string }): Promise<TxID>;
  };

  requestRoll: {
    ({ _property }: { _property: string }): Promise<TxID>;
  };

  respondToRoll: {
    ({
      _property,
      _accept,
    }: {
      _property: string;
      _accept: boolean;
    }): Promise<TxID>;
  };

  revokeRole: {
    ({ role, account }: { role: string; account: string }): Promise<TxID>;
  };

  setPropertyInfo: {
    ({
      _property,
      _firstResidence,
      _lastValue,
      _lastValueDate,
      _hasPropertyRights,
      _isResidential,
    }: {
      _property: string;
      _firstResidence: boolean;
      _lastValue: number | BN | string;
      _lastValueDate: number | BN | string;
      _hasPropertyRights: boolean;
      _isResidential: boolean;
    }): Promise<TxID>;
  };

  startEscrow: {
    ({
      _property,
      _amount,
    }: {
      _property: string;
      _amount: number | BN | string;
    }): Promise<TxID>;
  };

  supportsInterface({ interfaceId }: { interfaceId: string }): Promise<boolean>;

  updateMinAmount: {
    ({ _minAmount }: { _minAmount: number | BN | string }): Promise<TxID>;
  };

  withdrawLoan: {
    ({ _property }: { _property: string }): Promise<TxID>;
  };
}
