// package: routerprotocol.routerchain.multichain
// file: routerprotocol/routerchain/multichain/genesis.proto

import * as jspb from "google-protobuf";
import * as gogoproto_gogo_pb from "../../../gogoproto/gogo_pb";
import * as routerprotocol_routerchain_multichain_params_pb from "../../../routerprotocol/routerchain/multichain/params_pb";
import * as routerprotocol_routerchain_multichain_chain_config_pb from "../../../routerprotocol/routerchain/multichain/chain_config_pb";
import * as routerprotocol_routerchain_multichain_ibc_relayer_config_pb from "../../../routerprotocol/routerchain/multichain/ibc_relayer_config_pb";
import * as routerprotocol_routerchain_multichain_nonce_observed_status_pb from "../../../routerprotocol/routerchain/multichain/nonce_observed_status_pb";

export class GenesisState extends jspb.Message {
  hasParams(): boolean;
  clearParams(): void;
  getParams(): routerprotocol_routerchain_multichain_params_pb.Params | undefined;
  setParams(value?: routerprotocol_routerchain_multichain_params_pb.Params): void;

  clearChainconfiglistList(): void;
  getChainconfiglistList(): Array<routerprotocol_routerchain_multichain_chain_config_pb.ChainConfig>;
  setChainconfiglistList(value: Array<routerprotocol_routerchain_multichain_chain_config_pb.ChainConfig>): void;
  addChainconfiglist(value?: routerprotocol_routerchain_multichain_chain_config_pb.ChainConfig, index?: number): routerprotocol_routerchain_multichain_chain_config_pb.ChainConfig;

  clearContractconfiglistList(): void;
  getContractconfiglistList(): Array<routerprotocol_routerchain_multichain_chain_config_pb.ContractConfig>;
  setContractconfiglistList(value: Array<routerprotocol_routerchain_multichain_chain_config_pb.ContractConfig>): void;
  addContractconfiglist(value?: routerprotocol_routerchain_multichain_chain_config_pb.ContractConfig, index?: number): routerprotocol_routerchain_multichain_chain_config_pb.ContractConfig;

  clearIbcrelayerconfiglistList(): void;
  getIbcrelayerconfiglistList(): Array<routerprotocol_routerchain_multichain_ibc_relayer_config_pb.IbcRelayerConfig>;
  setIbcrelayerconfiglistList(value: Array<routerprotocol_routerchain_multichain_ibc_relayer_config_pb.IbcRelayerConfig>): void;
  addIbcrelayerconfiglist(value?: routerprotocol_routerchain_multichain_ibc_relayer_config_pb.IbcRelayerConfig, index?: number): routerprotocol_routerchain_multichain_ibc_relayer_config_pb.IbcRelayerConfig;

  clearNonceobservedstatuslistList(): void;
  getNonceobservedstatuslistList(): Array<routerprotocol_routerchain_multichain_nonce_observed_status_pb.NonceObservedStatus>;
  setNonceobservedstatuslistList(value: Array<routerprotocol_routerchain_multichain_nonce_observed_status_pb.NonceObservedStatus>): void;
  addNonceobservedstatuslist(value?: routerprotocol_routerchain_multichain_nonce_observed_status_pb.NonceObservedStatus, index?: number): routerprotocol_routerchain_multichain_nonce_observed_status_pb.NonceObservedStatus;

  serializeBinary(): Uint8Array;
  toObject(includeInstance?: boolean): GenesisState.AsObject;
  static toObject(includeInstance: boolean, msg: GenesisState): GenesisState.AsObject;
  static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
  static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
  static serializeBinaryToWriter(message: GenesisState, writer: jspb.BinaryWriter): void;
  static deserializeBinary(bytes: Uint8Array): GenesisState;
  static deserializeBinaryFromReader(message: GenesisState, reader: jspb.BinaryReader): GenesisState;
}

export namespace GenesisState {
  export type AsObject = {
    params?: routerprotocol_routerchain_multichain_params_pb.Params.AsObject,
    chainconfiglistList: Array<routerprotocol_routerchain_multichain_chain_config_pb.ChainConfig.AsObject>,
    contractconfiglistList: Array<routerprotocol_routerchain_multichain_chain_config_pb.ContractConfig.AsObject>,
    ibcrelayerconfiglistList: Array<routerprotocol_routerchain_multichain_ibc_relayer_config_pb.IbcRelayerConfig.AsObject>,
    nonceobservedstatuslistList: Array<routerprotocol_routerchain_multichain_nonce_observed_status_pb.NonceObservedStatus.AsObject>,
  }
}

