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 CwPayrollFactoryQueryClient {
  constructor(client, contractAddress) {
    _defineProperty(this, "client", void 0);
    _defineProperty(this, "contractAddress", void 0);
    _defineProperty(this, "listVestingContracts", async ({
      limit,
      startAfter
    }) => {
      return this.client.queryContractSmart(this.contractAddress, {
        list_vesting_contracts: {
          limit,
          start_after: startAfter
        }
      });
    });
    _defineProperty(this, "listVestingContractsReverse", async ({
      limit,
      startBefore
    }) => {
      return this.client.queryContractSmart(this.contractAddress, {
        list_vesting_contracts_reverse: {
          limit,
          start_before: startBefore
        }
      });
    });
    _defineProperty(this, "listVestingContractsByInstantiator", async ({
      instantiator,
      limit,
      startAfter
    }) => {
      return this.client.queryContractSmart(this.contractAddress, {
        list_vesting_contracts_by_instantiator: {
          instantiator,
          limit,
          start_after: startAfter
        }
      });
    });
    _defineProperty(this, "listVestingContractsByInstantiatorReverse", async ({
      instantiator,
      limit,
      startBefore
    }) => {
      return this.client.queryContractSmart(this.contractAddress, {
        list_vesting_contracts_by_instantiator_reverse: {
          instantiator,
          limit,
          start_before: startBefore
        }
      });
    });
    _defineProperty(this, "listVestingContractsByRecipient", async ({
      limit,
      recipient,
      startAfter
    }) => {
      return this.client.queryContractSmart(this.contractAddress, {
        list_vesting_contracts_by_recipient: {
          limit,
          recipient,
          start_after: startAfter
        }
      });
    });
    _defineProperty(this, "listVestingContractsByRecipientReverse", async ({
      limit,
      recipient,
      startBefore
    }) => {
      return this.client.queryContractSmart(this.contractAddress, {
        list_vesting_contracts_by_recipient_reverse: {
          limit,
          recipient,
          start_before: startBefore
        }
      });
    });
    _defineProperty(this, "ownership", async () => {
      return this.client.queryContractSmart(this.contractAddress, {
        ownership: {}
      });
    });
    _defineProperty(this, "codeId", async () => {
      return this.client.queryContractSmart(this.contractAddress, {
        code_id: {}
      });
    });
    this.client = client;
    this.contractAddress = contractAddress;
    this.listVestingContracts = this.listVestingContracts.bind(this);
    this.listVestingContractsReverse = this.listVestingContractsReverse.bind(this);
    this.listVestingContractsByInstantiator = this.listVestingContractsByInstantiator.bind(this);
    this.listVestingContractsByInstantiatorReverse = this.listVestingContractsByInstantiatorReverse.bind(this);
    this.listVestingContractsByRecipient = this.listVestingContractsByRecipient.bind(this);
    this.listVestingContractsByRecipientReverse = this.listVestingContractsByRecipientReverse.bind(this);
    this.ownership = this.ownership.bind(this);
    this.codeId = this.codeId.bind(this);
  }
}
export class CwPayrollFactoryClient extends CwPayrollFactoryQueryClient {
  constructor(client, _sender, contractAddress) {
    super(client, contractAddress);
    _defineProperty(this, "client", void 0);
    _defineProperty(this, "sender", void 0);
    _defineProperty(this, "contractAddress", void 0);
    _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, "instantiateNativePayrollContract", async ({
      instantiateMsg,
      label
    }, fee = "auto", memo, funds) => {
      return await this.client.execute(this.sender, this.contractAddress, {
        instantiate_native_payroll_contract: {
          instantiate_msg: instantiateMsg,
          label
        }
      }, fee, memo, funds);
    });
    _defineProperty(this, "updateCodeId", async ({
      vestingCodeId
    }, fee = "auto", memo, funds) => {
      return await this.client.execute(this.sender, this.contractAddress, {
        update_code_id: {
          vesting_code_id: vestingCodeId
        }
      }, fee, memo, funds);
    });
    _defineProperty(this, "updateOwnership", async (fee = "auto", memo, funds) => {
      return await this.client.execute(this.sender, this.contractAddress, {
        update_ownership: {}
      }, fee, memo, funds);
    });
    this.client = client;
    this.sender = _sender;
    this.contractAddress = contractAddress;
    this.receive = this.receive.bind(this);
    this.instantiateNativePayrollContract = this.instantiateNativePayrollContract.bind(this);
    this.updateCodeId = this.updateCodeId.bind(this);
    this.updateOwnership = this.updateOwnership.bind(this);
  }
}