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

export type IAsset = string
export type IName = string
export type IChecksum256 = string
export type IPublicKey = string
export type ISignature = string
export type ITimePointSec = string
export type IUint32 = number
export type IUint64 = number | string

export interface IAddbal {
  coopname: IName
  username: IName
  program_id: IUint64
  quantity: IAsset
  memo: string
}

export interface IAddmemberfee {
  coopname: IName
  username: IName
  program_id: IUint64
  quantity: IAsset
  memo: string
}

export interface IAddpartcpnt {
  coopname: IName
  username: IName
  braname: IName
  type: IName
  created_at: ITimePointSec
  initial: IAsset
  minimum: IAsset
  spread_initial: boolean
}

export interface IAddress {
  id: IUint64
  coopname: IName
  braname: IName
  data: IAddressData
}

export interface IAddressData {
  full_address: string
  latitude: string
  longitude: string
  country: string
  state: string
  city: string
  district: string
  street: string
  house_number: string
  building_section: string
  unit_number: string
  directions: string
  phone_number: string
  email: string
  business_hours: string
  meta: string
}

export interface IAddstaff {
  coopname: IName
  chairman: IName
  username: IName
  rights: IRight[]
  position_title: string
}

export interface IAgreement {
  id: IUint64
  coopname: IName
  username: IName
  type: IName
  program_id: IUint64
  draft_id: IUint64
  version: IUint64
  document: IDocument
  status: IName
  updated_at: ITimePointSec
}

export interface IAgreement2 {
  id: IUint64
  coopname: IName
  username: IName
  type: IName
  program_id: IUint64
  draft_id: IUint64
  version: IUint64
  document: IDocument2
  status: IName
  updated_at: ITimePointSec
}

export interface IApproval {
  id: IUint64
  coopname: IName
  username: IName
  type: IName
  document: IDocument2
  approval_hash: IChecksum256
  callback_contract: IName
  callback_action_approve: IName
  callback_action_decline: IName
  meta: string
  created_at: ITimePointSec
}

export interface IAuthorize {
  coopname: IName
  chairman: IName
  decision_id: IUint64
  document: IDocument2
}

export interface IAutomate {
  coopname: IName
  board_id: IUint64
  member: IName
  action_type: IName
  provider: IName
  encrypted_private_key: string
}

export interface IAutomator {
  id: IUint64
  coopname: IName
  board_id: IUint64
  member: IName
  action_type: IName
  permission_name: IName
  encrypted_private_key: string
}

export interface IAutosigner {
  decision_id: IUint64
}

export interface IBlock {
  coopname: IName
  admin: IName
  username: IName
  message: string
}

export interface IBlockbal {
  coopname: IName
  username: IName
  program_id: IUint64
  quantity: IAsset
  memo: string
}

export interface IBoardMember {
  username: IName
  is_voting: boolean
  position_title: string
  position: IName
}

export interface IBoards {
  id: IUint64
  type: IName
  name: string
  description: string
  members: IBoardMember[]
  created_at: ITimePointSec
  last_update: ITimePointSec
}

export interface ICancelexprd {
  coopname: IName
  decision_id: IUint64
}

export interface ICancelreg {
  coopname: IName
  username: IName
  message: string
}

export interface ICancelvote {
  coopname: IName
  member: IName
  decision_id: IUint64
}

export interface IChanges {
  id: IUint64
  exchange_id: IUint64
  contribution_product_decision_id: IUint64
  return_product_decision_id: IUint64
}

export interface ICoagreement {
  type: IName
  coopname: IName
  program_id: IUint64
  draft_id: IUint64
}

export interface IConfirmagree {
  coopname: IName
  administrator: IName
  username: IName
  agreement_id: IUint64
}

export interface IConfirmapprv {
  coopname: IName
  username: IName
  approval_hash: IChecksum256
  approved_document?: IDocument2
}

export interface IConverttoaxn {
  coopname: IName
  amount: IAsset
  statement: IDocument2
}

export interface ICounts extends ICountsBase {
}

export interface ICountsBase {
  key: IName
  secondary_key: IName
  value: IUint64
}

export interface ICreaddress {
  coopname: IName
  chairman: IName
  braname: IName
  data: IAddressData
}

export interface ICreateagenda {
  coopname: IName
  username: IName
  type: IName
  hash: IChecksum256
  callback_contract: IName
  confirm_callback: IName
  decline_callback: IName
  statement: IDocument2
  meta: string
}

export interface ICreateapprv {
  coopname: IName
  username: IName
  document: IDocument2
  type: IName
  approval_hash: IChecksum256
  callback_contract: IName
  callback_action_approve: IName
  callback_action_decline: IName
  meta: string
}

export interface ICreateboard {
  coopname: IName
  username: IName
  type: IName
  members: IBoardMember[]
  name: string
  description: string
}

export interface ICreateprog {
  coopname: IName
  username: IName
  type: IName
  title: string
  announce: string
  description: string
  preview: string
  images: string
  calculation_type: IName
  fixed_membership_contribution: IAsset
  membership_percent_fee: IUint64
  is_can_coop_spend_share_contributions: boolean
  meta: string
}

export interface IDecision {
  id: IUint64
  coopname: IName
  username: IName
  type: IName
  batch_id: IUint64
  statement: IDocument2
  votes_for: IName[]
  votes_against: IName[]
  validated: boolean
  approved: boolean
  authorized: boolean
  authorized_by: IName
  authorization: IDocument2
  created_at: ITimePointSec
  expired_at: ITimePointSec$
  meta: IString$
  callback_contract: IName$
  confirm_callback: IName$
  decline_callback: IName$
  hash: IChecksum256$
}

export interface IDeclineagree {
  coopname: IName
  administrator: IName
  username: IName
  agreement_id: IUint64
  comment: string
}

export interface IDeclineapprv {
  coopname: IName
  username: IName
  approval_hash: IChecksum256
  reason: string
}

export interface IDeclinedoc {
  coopname: IName
  username: IName
  hash: IChecksum256
  document: IDocument2
}

export interface IDeladdress {
  coopname: IName
  chairman: IName
  address_id: IUint64
}

export interface IDeletebranch {
  coopname: IName
  braname: IName
}

export interface IDisableprog {
  coopname: IName
  program_id: IUint64
}

export interface IDisautomate {
  coopname: IName
  board_id: IUint64
  member: IName
  automation_id: IUint64
}

export interface IDocument {
  hash: IChecksum256
  public_key: IPublicKey
  signature: ISignature
  meta: string
}

export interface IDocument2 {
  version: string
  hash: IChecksum256
  doc_hash: IChecksum256
  meta_hash: IChecksum256
  meta: string
  signatures: ISignatureInfo[]
}

export interface IEditaddress {
  coopname: IName
  chairman: IName
  braname: IName
  address_id: IUint64
  data: IAddressData
}

export interface IEditprog {
  coopname: IName
  username: IName
  program_id: IUint64
  draft_id: IUint64
  title: string
  announce: string
  description: string
  preview: string
  images: string
  meta: string
}

export interface IExec {
  executer: IName
  coopname: IName
  decision_id: IUint64
}

export interface IFreedecision {
  coopname: IName
  username: IName
  document: IDocument2
  meta: string
}

export interface IFundwithdraw {
  coopname: IName
  username: IName
  type: IName
  withdraw_id: IUint64
  document: IDocument2
}

export interface IInit {
}

export interface IJoincoops {
  id: IUint64
  username: IName
  is_paid: boolean
  notice: string
  braname: IName$
}

export interface IMigrate {
}

export interface IMigrateagree {
  coopname: IName
  agreement_id: IUint64
}

export interface INewact {
  coopname: IName
  username: IName
  action: IName
  package: IChecksum256
  document: IDocument2
}

export interface INewagreement {
  coopname: IName
  username: IName
  type: IName
  document: IDocument2
}

export interface INewdecision {
  coopname: IName
  username: IName
  action: IName
  package: IChecksum256
  document: IDocument2
}

export interface INewdeclined {
  coopname: IName
  username: IName
  package: IChecksum256
  document: IDocument2
}

export interface INewlink {
  coopname: IName
  username: IName
  action: IName
  package: IChecksum256
  document: IDocument2
}

export interface INewpackage {
  coopname: IName
  username: IName
  action: IName
  package: IChecksum256
}

export interface INewresolved {
  coopname: IName
  username: IName
  action: IName
  package: IChecksum256
  document: IDocument2
}

export interface INewsubmitted {
  coopname: IName
  username: IName
  action: IName
  package: IChecksum256
  document: IDocument2
}

export interface IOpenprogwall {
  coopname: IName
  username: IName
  program_type: IName
  agreement_id: IUint64
}

export interface IParticipant {
  username: IName
  created_at: ITimePointSec
  last_update: ITimePointSec
  last_min_pay: ITimePointSec
  status: IName
  is_initial: boolean
  is_minimum: boolean
  has_vote: boolean
  type: IName$
  braname: IName$
  initial_amount: IAsset$
  minimum_amount: IAsset$
}

export interface IProgram {
  id: IUint64
  draft_id: IUint64
  program_type: IName
  coopname: IName
  is_active: boolean
  title: string
  announce: string
  description: string
  preview: string
  images: string
  meta: string
  calculation_type: IName
  membership_percent_fee: IUint64
  fixed_membership_contribution: IAsset
  start_at: ITimePointSec
  expired_at: ITimePointSec
  available: IAsset$
  spendeded: IAsset$
  blocked: IAsset$
  is_can_coop_spend_share_contributions: IBool$
  share_contributions: IAsset$
  membership_contributions: IAsset$
}

export interface IProgwallet {
  id: IUint64
  coopname: IName
  program_id: IUint64
  agreement_id: IUint64
  username: IName
  available: IAsset
  blocked: IAsset$
  membership_contribution: IAsset$
}

export interface IRepairdec {
  coopname: IName
  decision_id: IUint64
  username: IName
  type: IName
  batch_id: IUint64
  statement: IDocument2
  votes_for: IName[]
  votes_against: IName[]
  validated: boolean
  approved: boolean
  authorized: boolean
  authorized_by: IName
  authorization: IDocument2
  created_at: ITimePointSec
  expired_at: ITimePointSec
  meta: string
  callback_contract: IName
  confirm_callback: IName
  decline_callback: IName
  hash: IChecksum256
}

export interface IRight {
  contract: IName
  action_name: IName
}

export interface IRmstaff {
  coopname: IName
  chairman: IName
  username: IName
}

export interface ISelectbranch {
  coopname: IName
  username: IName
  braname: IName
  document: IDocument2
}

export interface ISetrights {
  coopname: IName
  chairman: IName
  username: IName
  rights: IRight[]
}

export interface ISignatureInfo {
  id: IUint32
  signed_hash: IChecksum256
  signer: IName
  public_key: IPublicKey
  signature: ISignature
  signed_at: ITimePointSec
  meta: string
}

export interface ISndagreement {
  coopname: IName
  administrator: IName
  username: IName
  agreement_type: IName
  document: IDocument2
}

export interface IStaff {
  username: IName
  position_title: string
  roles: IName[]
  rights: IRight[]
  created_at: ITimePointSec
  updated_at: ITimePointSec
}

export interface ISubbal {
  coopname: IName
  username: IName
  program_id: IUint64
  quantity: IAsset
  skip_available_check: boolean
  memo: string
}

export interface ISubmemberfee {
  coopname: IName
  username: IName
  program_id: IUint64
  quantity: IAsset
  memo: string
}

export interface IUnblock {
  coopname: IName
  admin: IName
  username: IName
  is_registration: boolean
  message: string
}

export interface IUnblockbal {
  coopname: IName
  username: IName
  program_id: IUint64
  quantity: IAsset
  memo: string
}

export interface IUpdateboard {
  coopname: IName
  username: IName
  board_id: IUint64
  members: IBoardMember[]
  name: string
  description: string
}

export interface IValidate {
  coopname: IName
  username: IName
  decision_id: IUint64
}

export interface IVoteagainst {
  version: string
  coopname: IName
  username: IName
  decision_id: IUint64
  signed_at: ITimePointSec
  signed_hash: IChecksum256
  signature: ISignature
  public_key: IPublicKey
}

export interface IVotefor {
  version: string
  coopname: IName
  username: IName
  decision_id: IUint64
  signed_at: ITimePointSec
  signed_hash: IChecksum256
  signature: ISignature
  public_key: IPublicKey
}

export interface IWithdraw {
  coopname: IName
  username: IName
  withdraw_id: IUint64
  statement: IDocument2
}

