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

export interface IAct1pgprp {
  coopname: IName
  username: IName
  property_hash: IChecksum256
  act: IDocument2
}

export interface IAct2pgprp {
  coopname: IName
  username: IName
  property_hash: IChecksum256
  act: IDocument2
}

export interface IAddauthor {
  coopname: IName
  project_hash: IChecksum256
  author: IName
}

export interface IAllocate {
  coopname: IName
  project_hash: IChecksum256
  amount: IAsset
}

export interface IAppendix {
  id: IUint64
  coopname: IName
  username: IName
  project_hash: IChecksum256
  appendix_hash: IChecksum256
  status: IName
  created_at: ITimePointSec
  appendix: IDocument2
}

export interface IApprovecmmt {
  coopname: IName
  master: IName
  commit_hash: IChecksum256
}

export interface IApprovedebt {
  coopname: IName
  username: IName
  debt_hash: IChecksum256
  approved_statement: IDocument2
}

export interface IApproveexpns {
  coopname: IName
  approver: IName
  expense_hash: IChecksum256
  approved_statement: IDocument2
}

export interface IApprovepgprp {
  coopname: IName
  username: IName
  property_hash: IChecksum256
  approved_statement: IDocument2
}

export interface IApprovepjprp {
  coopname: IName
  username: IName
  property_hash: IChecksum256
  empty_document: IDocument2
}

export interface IApprovereg {
  coopname: IName
  username: IName
  contributor_hash: IChecksum256
  contract: IDocument2
}

export interface IApproverslt {
  coopname: IName
  username: IName
  result_hash: IChecksum256
  approved_statement: IDocument2
}

export interface IApprovewthd3 {
  coopname: IName
  approver: IName
  withdraw_hash: IChecksum256
  approved_return_statement: IDocument2
}

export interface IApprvappndx {
  coopname: IName
  username: IName
  appendix_hash: IChecksum256
  approved_document: IDocument2
}

export interface IApprvpinv {
  coopname: IName
  username: IName
  invest_hash: IChecksum256
  approved_statement: IDocument2
}

export interface IAuthpgprp {
  coopname: IName
  property_hash: IChecksum256
  decision: IDocument2
}

export interface IAuthrslt {
  coopname: IName
  result_hash: IChecksum256
  decision: IDocument2
}

export interface ICalcvotes {
  coopname: IName
  username: IName
  project_hash: IChecksum256
}

export interface ICapauthexpns {
  coopname: IName
  expense_hash: IChecksum256
  authorization: IDocument2
}

export interface ICapauthwthd3 {
  coopname: IName
  withdraw_hash: IChecksum256
  authorization: IDocument2
}

export interface ICapdeclexpns {
  coopname: IName
  expense_hash: IChecksum256
}

export interface ICapdeclwthd3 {
  coopname: IName
  withdraw_hash: IChecksum256
  reason: string
}

export interface ICapitalWallet {
  id: IUint64
  coopname: IName
  username: IName
  last_program_crps: IFloat64
  capital_available: IAsset
}

export interface ICloseproject {
  coopname: IName
  project_hash: IChecksum256
}

export interface ICmpltvoting {
  coopname: IName
  project_hash: IChecksum256
}

export interface ICommit {
  id: IUint64
  coopname: IName
  username: IName
  status: IName
  project_hash: IChecksum256
  commit_hash: IChecksum256
  description: string
  meta: string
  amounts: IGenerationAmounts
  created_at: ITimePointSec
}

export interface IConfig {
  coordinator_bonus_percent: IFloat64
  expense_pool_percent: IFloat64
  coordinator_invite_validity_days: IUint32
  voting_period_in_days: IUint32
  authors_voting_percent: IFloat64
  creators_voting_percent: IFloat64
  energy_decay_rate_per_day: IFloat64
  level_depth_base: IUint64
  level_growth_coefficient: IFloat64
  energy_gain_coefficient: IFloat64
}

export interface IContributor {
  id: IUint64
  coopname: IName
  username: IName
  contributor_hash: IChecksum256
  created_at: ITimePointSec
  status: IName
  memo: string
  is_external_contract: boolean
  contract: IDocument2
  appendixes: IChecksum256[]
  rate_per_hour: IAsset
  hours_per_day: IUint64
  debt_amount: IAsset
  contributed_as_investor: IAsset
  contributed_as_creator: IAsset
  contributed_as_author: IAsset
  contributed_as_coordinator: IAsset
  contributed_as_contributor: IAsset
  contributed_as_propertor: IAsset
  level: IUint32
  energy: IFloat64
  last_energy_update: ITimePointSec
}

export interface IConvertsegm {
  coopname: IName
  username: IName
  project_hash: IChecksum256
  convert_hash: IChecksum256
  wallet_amount: IAsset
  capital_amount: IAsset
  convert_statement: IDocument2
}

export interface ICountsData {
  total_unique_participants: IUint64
  total_authors: IUint64
  total_coordinators: IUint64
  total_creators: IUint64
  total_investors: IUint64
  total_propertors: IUint64
  total_contributors: IUint64
  total_commits: IUint64
  total_converted_segments: IUint64
}

export interface ICreatecmmt {
  coopname: IName
  username: IName
  project_hash: IChecksum256
  commit_hash: IChecksum256
  creator_hours: IUint64
  description: string
  meta: string
}

export interface ICreatedebt {
  coopname: IName
  username: IName
  project_hash: IChecksum256
  debt_hash: IChecksum256
  amount: IAsset
  repaid_at: ITimePointSec
  statement: IDocument2
}

export interface ICreateexpnse {
  coopname: IName
  expense_hash: IChecksum256
  project_hash: IChecksum256
  creator: IName
  amount: IAsset
  description: string
  statement: IDocument2
}

export interface ICreateinvest {
  coopname: IName
  username: IName
  project_hash: IChecksum256
  invest_hash: IChecksum256
  amount: IAsset
  statement: IDocument2
}

export interface ICreatepgprp {
  coopname: IName
  username: IName
  property_hash: IChecksum256
  property_amount: IAsset
  property_description: string
  statement: IDocument2
}

export interface ICreatepinv {
  coopname: IName
  username: IName
  invest_hash: IChecksum256
  amount: IAsset
  statement: IDocument2
}

export interface ICreatepjprp {
  coopname: IName
  username: IName
  project_hash: IChecksum256
  property_hash: IChecksum256
  property_amount: IAsset
  property_description: string
}

export interface ICreateproj {
  coopname: IName
  project_hash: IChecksum256
  parent_hash: IChecksum256
  title: string
  description: string
  invite: string
  meta: string
  data: string
}

export interface ICreatewthd3 {
  coopname: IName
  username: IName
  withdraw_hash: IChecksum256
  amount: IAsset
  return_statement: IDocument2
}

export interface ICrpsData {
  total_capital_contributors_shares: IAsset
  author_base_cumulative_reward_per_share: IFloat64
  author_bonus_cumulative_reward_per_share: IFloat64
  contributor_cumulative_reward_per_share: IFloat64
}

export interface IDclineappndx {
  coopname: IName
  username: IName
  appendix_hash: IChecksum256
  reason: string
}

export interface IDebt {
  id: IUint64
  coopname: IName
  username: IName
  status: IName
  debt_hash: IChecksum256
  project_hash: IChecksum256
  repaid_at: ITimePointSec
  amount: IAsset
  statement: IDocument2
  approved_statement: IDocument2
  authorization: IDocument2
  memo: string
}

export interface IDebtauthcnfr {
  coopname: IName
  debt_hash: IChecksum256
  decision: IDocument2
}

export interface IDebtpaycnfrm {
  coopname: IName
  debt_hash: IChecksum256
}

export interface IDebtpaydcln {
  coopname: IName
  debt_hash: IChecksum256
  reason: string
}

export interface IDeclinecmmt {
  coopname: IName
  master: IName
  commit_hash: IChecksum256
  reason: string
}

export interface IDeclinedebt {
  coopname: IName
  username: IName
  debt_hash: IChecksum256
  reason: string
}

export interface IDeclinepgprp {
  coopname: IName
  username: IName
  property_hash: IChecksum256
  reason: string
}

export interface IDeclinepjprp {
  coopname: IName
  username: IName
  property_hash: IChecksum256
  reason: string
}

export interface IDeclinereg {
  coopname: IName
  username: IName
  contributor_hash: IChecksum256
  reason: string
}

export interface IDeclpinv {
  coopname: IName
  username: IName
  invest_hash: IChecksum256
  declined_statement: IDocument2
}

export interface IDeclrslt {
  coopname: IName
  result_hash: IChecksum256
  reason: string
}

export interface IDelproject {
  coopname: IName
  project_hash: IChecksum256
}

export interface IDiallocate {
  coopname: IName
  project_hash: IChecksum256
}

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

export interface IEditcontrib {
  coopname: IName
  username: IName
  rate_per_hour: IAsset
  hours_per_day: IUint64
}

export interface IEditproj {
  coopname: IName
  project_hash: IChecksum256
  title: string
  description: string
  invite: string
  meta: string
  data: string
}

export interface IExpandexpnss {
  coopname: IName
  project_hash: IChecksum256
  additional_expenses: IAsset
}

export interface IExpense {
  id: IUint64
  coopname: IName
  username: IName
  status: IName
  project_hash: IChecksum256
  expense_hash: IChecksum256
  fund_id: IUint64
  amount: IAsset
  description: string
  expense_statement: IDocument2
  approved_statement: IDocument2
  authorization: IDocument2
  spended_at: ITimePointSec
}

export interface IExppaycnfrm {
  coopname: IName
  expense_hash: IChecksum256
}

export interface IFactPool {
  hour_cost: IAsset
  creators_hours: IUint64
  return_base_percent: IFloat64
  use_invest_percent: IFloat64
  creators_base_pool: IAsset
  authors_base_pool: IAsset
  coordinators_base_pool: IAsset
  property_base_pool: IAsset
  creators_bonus_pool: IAsset
  authors_bonus_pool: IAsset
  contributors_bonus_pool: IAsset
  target_expense_pool: IAsset
  accumulated_expense_pool: IAsset
  used_expense_pool: IAsset
  invest_pool: IAsset
  coordinators_investment_pool: IAsset
  program_invest_pool: IAsset
  total_received_investments: IAsset
  total_returned_investments: IAsset
  total_used_for_compensation: IAsset
  total_generation_pool: IAsset
  total_contribution: IAsset
  total: IAsset
  total_used_investments: IAsset
  total_with_investments: IAsset
}

export interface IFinalizeproj {
  coopname: IName
  project_hash: IChecksum256
}

export interface IFundprog {
  coopname: IName
  amount: IAsset
  memo: string
}

export interface IGenerationAmounts {
  hour_cost: IAsset
  creators_hours: IUint64
  creators_base_pool: IAsset
  authors_base_pool: IAsset
  creators_bonus_pool: IAsset
  authors_bonus_pool: IAsset
  total_generation_pool: IAsset
  contributors_bonus_pool: IAsset
  total_contribution: IAsset
}

export interface IGetclearance {
  coopname: IName
  username: IName
  project_hash: IChecksum256
  appendix_hash: IChecksum256
  document: IDocument2
}

export interface IGlobalState {
  coopname: IName
  global_available_invest_pool: IAsset
  program_membership_funded: IAsset
  program_membership_available: IAsset
  program_membership_distributed: IAsset
  program_membership_cumulative_reward_per_share: IFloat64
  config: IConfig
}

export interface IImportcontrib {
  coopname: IName
  username: IName
  contributor_hash: IChecksum256
  contribution_amount: IAsset
  memo: string
}

export interface IInvest {
  id: IUint64
  coopname: IName
  username: IName
  invest_hash: IChecksum256
  project_hash: IChecksum256
  status: IName
  amount: IAsset
  invested_at: ITimePointSec
  statement: IDocument2
  coordinator: IName
  coordinator_amount: IAsset
}

export interface ILvlnotify {
  coopname: IName
  username: IName
  prev_level: IUint32
  new_level: IUint32
}

export interface IOpenproject {
  coopname: IName
  project_hash: IChecksum256
}

export interface IPlanPool {
  hour_cost: IAsset
  creators_hours: IUint64
  return_base_percent: IFloat64
  use_invest_percent: IFloat64
  creators_base_pool: IAsset
  authors_base_pool: IAsset
  coordinators_base_pool: IAsset
  creators_bonus_pool: IAsset
  authors_bonus_pool: IAsset
  contributors_bonus_pool: IAsset
  target_expense_pool: IAsset
  invest_pool: IAsset
  coordinators_investment_pool: IAsset
  program_invest_pool: IAsset
  total_received_investments: IAsset
  total_generation_pool: IAsset
  total: IAsset
  total_with_investments: IAsset
}

export interface IProgramInvest {
  id: IUint64
  coopname: IName
  username: IName
  invest_hash: IChecksum256
  status: IName
  invested_at: ITimePointSec
  statement: IDocument2
  amount: IAsset
}

export interface IProgramProperty {
  id: IUint64
  coopname: IName
  username: IName
  status: IName
  property_hash: IChecksum256
  property_amount: IAsset
  property_description: string
  statement: IDocument2
  authorization: IDocument2
  act: IDocument2
  created_at: ITimePointSec
}

export interface IProgramWithdraw {
  id: IUint64
  coopname: IName
  withdraw_hash: IChecksum256
  username: IName
  status: IName
  amount: IAsset
  statement: IDocument2
  created_at: ITimePointSec
}

export interface IProject {
  id: IUint64
  coopname: IName
  project_hash: IChecksum256
  parent_hash: IChecksum256
  status: IName
  is_opened: boolean
  is_planed: boolean
  is_authorized: boolean
  master: IName
  title: string
  description: string
  invite: string
  data: string
  meta: string
  authorization: IDocument2
  counts: ICountsData
  plan: IPlanPool
  fact: IFactPool
  crps: ICrpsData
  voting: IVotingData
  created_at: ITimePointSec
}

export interface IProperty {
  id: IUint64
  coopname: IName
  username: IName
  status: IName
  project_hash: IChecksum256
  property_hash: IChecksum256
  property_amount: IAsset
  property_description: string
  created_at: ITimePointSec
}

export interface IPurgesegment {
  coopname: IName
  username: IName
  project_hash: IChecksum256
}

export interface IPushrslt {
  coopname: IName
  username: IName
  project_hash: IChecksum256
  result_hash: IChecksum256
  contribution_amount: IAsset
  debt_amount: IAsset
  statement: IDocument2
  debt_hashes: IChecksum256[]
}

export interface IRefreshcontr {
  coopname: IName
  username: IName
}

export interface IRefreshprog {
  coopname: IName
  username: IName
}

export interface IRegcontrib {
  coopname: IName
  username: IName
  contributor_hash: IChecksum256
  rate_per_hour: IAsset
  hours_per_day: IUint64
  is_external_contract: boolean
  storage_agreement: IDocument2
  contract?: IDocument2
  blagorost_agreement?: IDocument2
  generator_agreement?: IDocument2
}

export interface IRegshare {
  coopname: IName
  project_hash: IChecksum256
  username: IName
  user_shares: IAsset
}

export interface IResult {
  id: IUint64
  project_hash: IChecksum256
  result_hash: IChecksum256
  coopname: IName
  username: IName
  status: IName
  created_at: ITimePointSec
  debt_amount: IAsset
  total_amount: IAsset
  statement: IDocument2
  authorization: IDocument2
  act: IDocument2
}

export interface IReturntopool {
  coopname: IName
  project_hash: IChecksum256
  amount: IAsset
}

export interface IRfrshsegment {
  coopname: IName
  project_hash: IChecksum256
  username: IName
}

export interface ISegment {
  id: IUint64
  project_hash: IChecksum256
  coopname: IName
  username: IName
  status: IName
  is_author: boolean
  is_creator: boolean
  is_coordinator: boolean
  is_investor: boolean
  is_propertor: boolean
  is_contributor: boolean
  has_vote: boolean
  investor_amount: IAsset
  investor_base: IAsset
  creator_base: IAsset
  creator_bonus: IAsset
  author_base: IAsset
  author_bonus: IAsset
  coordinator_investments: IAsset
  coordinator_base: IAsset
  contributor_bonus: IAsset
  property_base: IAsset
  last_author_base_reward_per_share: IFloat64
  last_author_bonus_reward_per_share: IFloat64
  last_contributor_reward_per_share: IFloat64
  capital_contributor_shares: IAsset
  last_known_invest_pool: IAsset
  last_known_creators_base_pool: IAsset
  last_known_coordinators_investment_pool: IAsset
  provisional_amount: IAsset
  debt_amount: IAsset
  debt_settled: IAsset
  equal_author_bonus: IAsset
  direct_creator_bonus: IAsset
  is_votes_calculated: boolean
  voting_bonus: IAsset
  total_segment_base_cost: IAsset
  total_segment_bonus_cost: IAsset
  total_segment_cost: IAsset
  intellectual_cost: IAsset
  available_for_program: IAsset
  available_for_wallet: IAsset
  share_percent: IFloat64
}

export interface ISetconfig {
  coopname: IName
  config: IConfig
}

export interface ISetmaster {
  coopname: IName
  project_hash: IChecksum256
  master: IName
}

export interface ISetplan {
  coopname: IName
  master: IName
  project_hash: IChecksum256
  plan_creators_hours: IUint64
  plan_expenses: IAsset
  plan_hour_cost: IAsset
}

export interface ISettledebt {
  coopname: IName
  username: IName
  amount: IAsset
  statement: IDocument2
}

export interface ISignact1 {
  coopname: IName
  username: IName
  result_hash: IChecksum256
  act: IDocument2
}

export interface ISignact2 {
  coopname: IName
  chairman: IName
  result_hash: IChecksum256
  act: IDocument2
}

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

export interface IStartproject {
  coopname: IName
  project_hash: IChecksum256
}

export interface IStartvoting {
  coopname: IName
  project_hash: IChecksum256
}

export interface IStopproject {
  coopname: IName
  project_hash: IChecksum256
}

export interface ISubmitvote {
  coopname: IName
  voter: IName
  project_hash: IChecksum256
  votes: IVoteInput[]
}

export interface IVote {
  id: IUint64
  coopname: IName
  project_hash: IChecksum256
  voter: IName
  recipient: IName
  amount: IAsset
  voted_at: ITimePointSec
}

export interface IVoteInput {
  recipient: IName
  amount: IAsset
}

export interface IVotingAmounts {
  authors_equal_spread: IAsset
  creators_direct_spread: IAsset
  authors_bonuses_on_voting: IAsset
  creators_bonuses_on_voting: IAsset
  total_voting_pool: IAsset
  active_voting_amount: IAsset
  equal_voting_amount: IAsset
  authors_equal_per_author: IAsset
}

export interface IVotingData {
  total_voters: IUint32
  votes_received: IUint32
  authors_voting_percent: IFloat64
  creators_voting_percent: IFloat64
  amounts: IVotingAmounts
  voting_deadline: ITimePointSec
}

