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

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 type IFloat64 = number

export interface IAuthmeet {
  coopname: IName
  hash: IChecksum256
  authorization: IDocument2
}

export interface ICreatemeet {
  coopname: IName
  hash: IChecksum256
  initiator: IName
  presider: IName
  secretary: IName
  agenda: IMeetPoint[]
  proposal: IDocument2
  open_at: ITimePointSec
  close_at: ITimePointSec
}

export interface IDeclmeet {
  coopname: IName
  hash: IChecksum256
  reason: string
}

export interface IDelmeet {
  coopname: IName
  meet_id: IUint64
}

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

export interface IGmnotify {
  coopname: IName
  hash: IChecksum256
  username: IName
  notification: IDocument2
}

export interface IMeet {
  id: IUint64
  hash: IChecksum256
  coopname: IName
  type: IName
  level: IName
  initiator: IName
  presider: IName
  secretary: IName
  status: IName
  created_at: ITimePointSec
  open_at: ITimePointSec
  close_at: ITimePointSec
  notified_users: IName[]
  quorum_percent: IFloat64
  signed_ballots: IUint64
  current_quorum_percent: IFloat64
  cycle: IUint64
  quorum_passed: boolean
  proposal: IDocument2
  authorization: IDocument2
  decision1: IDocument2
  decision2: IDocument2
}

export interface IMeetPoint {
  context: string
  title: string
  decision: string
}

export interface IMigrate {
}

export interface INewgdecision {
  coopname: IName
  presider: IName
  secretary: IName
  hash: IChecksum256
  results: IQuestionResult[]
  signed_ballots: IUint64
  quorum_percent: IFloat64
  quorum_passed: boolean
  decision: IDocument2
}

export interface IQuestion {
  id: IUint64
  number: IUint64
  coopname: IName
  meet_id: IUint64
  title: string
  context: string
  decision: string
  counter_votes_for: IUint64
  counter_votes_against: IUint64
  counter_votes_abstained: IUint64
  voters_for: IName[]
  voters_against: IName[]
  voters_abstained: IName[]
}

export interface IQuestionResult {
  question_id: IUint64
  number: IUint64
  title: string
  decision: string
  context: string
  votes_for: IUint64
  votes_against: IUint64
  votes_abstained: IUint64
  accepted: boolean
}

export interface IRestartmeet {
  coopname: IName
  hash: IChecksum256
  new_hash: IChecksum256
  newproposal: IDocument2
  new_open_at: ITimePointSec
  new_close_at: ITimePointSec
}

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

export interface ISignbypresid {
  coopname: IName
  username: IName
  hash: IChecksum256
  presider_decision: IDocument2
}

export interface ISignbysecr {
  coopname: IName
  username: IName
  hash: IChecksum256
  secretary_decision: IDocument2
}

export interface IVote {
  coopname: IName
  hash: IChecksum256
  username: IName
  ballot: IDocument2
  votes: IVotePoint[]
}

export interface IVotePoint {
  question_id: IUint64
  vote: IName
}

