// Generated by eosio-abi2ts 1.2.2 - eosio::abi/1.2

export type IName = string
export type IBytes = string | number[] | Uint8Array
export type ITimePointSec = string
export type IUint8 = number
export type IUint16 = number
export type IUint32 = number

export interface IAction {
  account: IName
  name: IName
  authorization: IPermissionLevel[]
  data: IBytes
}

export interface IExec {
  executer: IName
  trx: ITransaction
}

export interface IExtension {
  type: IUint16
  data: IBytes
}

export interface IPermissionLevel {
  actor: IName
  permission: IName
}

export interface ITransaction extends ITransactionHeader {
  context_free_actions: IAction[]
  actions: IAction[]
  transaction_extensions: IExtension[]
}

export interface ITransactionHeader {
  expiration: ITimePointSec
  ref_block_num: IUint16
  ref_block_prefix: IUint32
  max_net_usage_words: IUint32
  max_cpu_usage_ms: IUint8
  delay_sec: IUint32
}
