import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
/**
* This file was automatically generated by @cosmwasm/ts-codegen@0.26.0.
* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
* and run the @cosmwasm/ts-codegen generate command to regenerate this file.
*/

export class DaoCoreQueryClient {
  constructor(client, contractAddress) {
    _defineProperty(this, "client", void 0);
    _defineProperty(this, "contractAddress", void 0);
    _defineProperty(this, "admin", async () => {
      return this.client.queryContractSmart(this.contractAddress, {
        admin: {}
      });
    });
    _defineProperty(this, "adminNomination", async () => {
      return this.client.queryContractSmart(this.contractAddress, {
        admin_nomination: {}
      });
    });
    _defineProperty(this, "config", async () => {
      return this.client.queryContractSmart(this.contractAddress, {
        config: {}
      });
    });
    _defineProperty(this, "cw20Balances", async ({
      limit,
      startAfter
    }) => {
      return this.client.queryContractSmart(this.contractAddress, {
        cw20_balances: {
          limit,
          start_after: startAfter
        }
      });
    });
    _defineProperty(this, "cw20TokenList", async ({
      limit,
      startAfter
    }) => {
      return this.client.queryContractSmart(this.contractAddress, {
        cw20_token_list: {
          limit,
          start_after: startAfter
        }
      });
    });
    _defineProperty(this, "cw721TokenList", async ({
      limit,
      startAfter
    }) => {
      return this.client.queryContractSmart(this.contractAddress, {
        cw721_token_list: {
          limit,
          start_after: startAfter
        }
      });
    });
    _defineProperty(this, "dumpState", async () => {
      return this.client.queryContractSmart(this.contractAddress, {
        dump_state: {}
      });
    });
    _defineProperty(this, "getItem", async ({
      key
    }) => {
      return this.client.queryContractSmart(this.contractAddress, {
        get_item: {
          key
        }
      });
    });
    _defineProperty(this, "listItems", async ({
      limit,
      startAfter
    }) => {
      return this.client.queryContractSmart(this.contractAddress, {
        list_items: {
          limit,
          start_after: startAfter
        }
      });
    });
    _defineProperty(this, "info", async () => {
      return this.client.queryContractSmart(this.contractAddress, {
        info: {}
      });
    });
    _defineProperty(this, "proposalModules", async ({
      limit,
      startAfter
    }) => {
      return this.client.queryContractSmart(this.contractAddress, {
        proposal_modules: {
          limit,
          start_after: startAfter
        }
      });
    });
    _defineProperty(this, "activeProposalModules", async ({
      limit,
      startAfter
    }) => {
      return this.client.queryContractSmart(this.contractAddress, {
        active_proposal_modules: {
          limit,
          start_after: startAfter
        }
      });
    });
    _defineProperty(this, "proposalModuleCount", async () => {
      return this.client.queryContractSmart(this.contractAddress, {
        proposal_module_count: {}
      });
    });
    _defineProperty(this, "pauseInfo", async () => {
      return this.client.queryContractSmart(this.contractAddress, {
        pause_info: {}
      });
    });
    _defineProperty(this, "votingModule", async () => {
      return this.client.queryContractSmart(this.contractAddress, {
        voting_module: {}
      });
    });
    _defineProperty(this, "listSubDaos", async ({
      limit,
      startAfter
    }) => {
      return this.client.queryContractSmart(this.contractAddress, {
        list_sub_daos: {
          limit,
          start_after: startAfter
        }
      });
    });
    _defineProperty(this, "daoURI", async () => {
      return this.client.queryContractSmart(this.contractAddress, {
        dao_u_r_i: {}
      });
    });
    _defineProperty(this, "votingPowerAtHeight", async ({
      address,
      height
    }) => {
      return this.client.queryContractSmart(this.contractAddress, {
        voting_power_at_height: {
          address,
          height
        }
      });
    });
    _defineProperty(this, "totalPowerAtHeight", async ({
      height
    }) => {
      return this.client.queryContractSmart(this.contractAddress, {
        total_power_at_height: {
          height
        }
      });
    });
    this.client = client;
    this.contractAddress = contractAddress;
    this.admin = this.admin.bind(this);
    this.adminNomination = this.adminNomination.bind(this);
    this.config = this.config.bind(this);
    this.cw20Balances = this.cw20Balances.bind(this);
    this.cw20TokenList = this.cw20TokenList.bind(this);
    this.cw721TokenList = this.cw721TokenList.bind(this);
    this.dumpState = this.dumpState.bind(this);
    this.getItem = this.getItem.bind(this);
    this.listItems = this.listItems.bind(this);
    this.info = this.info.bind(this);
    this.proposalModules = this.proposalModules.bind(this);
    this.activeProposalModules = this.activeProposalModules.bind(this);
    this.proposalModuleCount = this.proposalModuleCount.bind(this);
    this.pauseInfo = this.pauseInfo.bind(this);
    this.votingModule = this.votingModule.bind(this);
    this.listSubDaos = this.listSubDaos.bind(this);
    this.daoURI = this.daoURI.bind(this);
    this.votingPowerAtHeight = this.votingPowerAtHeight.bind(this);
    this.totalPowerAtHeight = this.totalPowerAtHeight.bind(this);
  }
}
export class DaoCoreClient extends DaoCoreQueryClient {
  constructor(client, _sender, contractAddress) {
    super(client, contractAddress);
    _defineProperty(this, "client", void 0);
    _defineProperty(this, "sender", void 0);
    _defineProperty(this, "contractAddress", void 0);
    _defineProperty(this, "executeAdminMsgs", async ({
      msgs
    }, fee = "auto", memo, funds) => {
      return await this.client.execute(this.sender, this.contractAddress, {
        execute_admin_msgs: {
          msgs
        }
      }, fee, memo, funds);
    });
    _defineProperty(this, "executeProposalHook", async ({
      msgs
    }, fee = "auto", memo, funds) => {
      return await this.client.execute(this.sender, this.contractAddress, {
        execute_proposal_hook: {
          msgs
        }
      }, fee, memo, funds);
    });
    _defineProperty(this, "pause", async ({
      duration
    }, fee = "auto", memo, funds) => {
      return await this.client.execute(this.sender, this.contractAddress, {
        pause: {
          duration
        }
      }, fee, memo, funds);
    });
    _defineProperty(this, "receive", async ({
      amount,
      msg,
      sender
    }, fee = "auto", memo, funds) => {
      return await this.client.execute(this.sender, this.contractAddress, {
        receive: {
          amount,
          msg,
          sender
        }
      }, fee, memo, funds);
    });
    _defineProperty(this, "receiveNft", async ({
      msg,
      sender,
      tokenId
    }, fee = "auto", memo, funds) => {
      return await this.client.execute(this.sender, this.contractAddress, {
        receive_nft: {
          msg,
          sender,
          token_id: tokenId
        }
      }, fee, memo, funds);
    });
    _defineProperty(this, "removeItem", async ({
      key
    }, fee = "auto", memo, funds) => {
      return await this.client.execute(this.sender, this.contractAddress, {
        remove_item: {
          key
        }
      }, fee, memo, funds);
    });
    _defineProperty(this, "setItem", async ({
      key,
      value
    }, fee = "auto", memo, funds) => {
      return await this.client.execute(this.sender, this.contractAddress, {
        set_item: {
          key,
          value
        }
      }, fee, memo, funds);
    });
    _defineProperty(this, "nominateAdmin", async ({
      admin
    }, fee = "auto", memo, funds) => {
      return await this.client.execute(this.sender, this.contractAddress, {
        nominate_admin: {
          admin
        }
      }, fee, memo, funds);
    });
    _defineProperty(this, "acceptAdminNomination", async (fee = "auto", memo, funds) => {
      return await this.client.execute(this.sender, this.contractAddress, {
        accept_admin_nomination: {}
      }, fee, memo, funds);
    });
    _defineProperty(this, "withdrawAdminNomination", async (fee = "auto", memo, funds) => {
      return await this.client.execute(this.sender, this.contractAddress, {
        withdraw_admin_nomination: {}
      }, fee, memo, funds);
    });
    _defineProperty(this, "updateConfig", async ({
      config
    }, fee = "auto", memo, funds) => {
      return await this.client.execute(this.sender, this.contractAddress, {
        update_config: {
          config
        }
      }, fee, memo, funds);
    });
    _defineProperty(this, "updateCw20List", async ({
      toAdd,
      toRemove
    }, fee = "auto", memo, funds) => {
      return await this.client.execute(this.sender, this.contractAddress, {
        update_cw20_list: {
          to_add: toAdd,
          to_remove: toRemove
        }
      }, fee, memo, funds);
    });
    _defineProperty(this, "updateCw721List", async ({
      toAdd,
      toRemove
    }, fee = "auto", memo, funds) => {
      return await this.client.execute(this.sender, this.contractAddress, {
        update_cw721_list: {
          to_add: toAdd,
          to_remove: toRemove
        }
      }, fee, memo, funds);
    });
    _defineProperty(this, "updateProposalModules", async ({
      toAdd,
      toDisable
    }, fee = "auto", memo, funds) => {
      return await this.client.execute(this.sender, this.contractAddress, {
        update_proposal_modules: {
          to_add: toAdd,
          to_disable: toDisable
        }
      }, fee, memo, funds);
    });
    _defineProperty(this, "updateVotingModule", async ({
      module
    }, fee = "auto", memo, funds) => {
      return await this.client.execute(this.sender, this.contractAddress, {
        update_voting_module: {
          module
        }
      }, fee, memo, funds);
    });
    _defineProperty(this, "updateSubDaos", async ({
      toAdd,
      toRemove
    }, fee = "auto", memo, funds) => {
      return await this.client.execute(this.sender, this.contractAddress, {
        update_sub_daos: {
          to_add: toAdd,
          to_remove: toRemove
        }
      }, fee, memo, funds);
    });
    this.client = client;
    this.sender = _sender;
    this.contractAddress = contractAddress;
    this.executeAdminMsgs = this.executeAdminMsgs.bind(this);
    this.executeProposalHook = this.executeProposalHook.bind(this);
    this.pause = this.pause.bind(this);
    this.receive = this.receive.bind(this);
    this.receiveNft = this.receiveNft.bind(this);
    this.removeItem = this.removeItem.bind(this);
    this.setItem = this.setItem.bind(this);
    this.nominateAdmin = this.nominateAdmin.bind(this);
    this.acceptAdminNomination = this.acceptAdminNomination.bind(this);
    this.withdrawAdminNomination = this.withdrawAdminNomination.bind(this);
    this.updateConfig = this.updateConfig.bind(this);
    this.updateCw20List = this.updateCw20List.bind(this);
    this.updateCw721List = this.updateCw721List.bind(this);
    this.updateProposalModules = this.updateProposalModules.bind(this);
    this.updateVotingModule = this.updateVotingModule.bind(this);
    this.updateSubDaos = this.updateSubDaos.bind(this);
  }
}