// package: cosmwasm.wasm.v1
// file: cosmwasm/wasm/v1/genesis.proto

import * as jspb from "google-protobuf";
import * as gogoproto_gogo_pb from "../../../gogoproto/gogo_pb";
import * as cosmwasm_wasm_v1_types_pb from "../../../cosmwasm/wasm/v1/types_pb";
import * as amino_amino_pb from "../../../amino/amino_pb";

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

  clearCodesList(): void;
  getCodesList(): Array<Code>;
  setCodesList(value: Array<Code>): void;
  addCodes(value?: Code, index?: number): Code;

  clearContractsList(): void;
  getContractsList(): Array<Contract>;
  setContractsList(value: Array<Contract>): void;
  addContracts(value?: Contract, index?: number): Contract;

  clearSequencesList(): void;
  getSequencesList(): Array<Sequence>;
  setSequencesList(value: Array<Sequence>): void;
  addSequences(value?: Sequence, index?: number): Sequence;

  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?: cosmwasm_wasm_v1_types_pb.Params.AsObject,
    codesList: Array<Code.AsObject>,
    contractsList: Array<Contract.AsObject>,
    sequencesList: Array<Sequence.AsObject>,
  }
}

export class Code extends jspb.Message {
  getCodeId(): number;
  setCodeId(value: number): void;

  hasCodeInfo(): boolean;
  clearCodeInfo(): void;
  getCodeInfo(): cosmwasm_wasm_v1_types_pb.CodeInfo | undefined;
  setCodeInfo(value?: cosmwasm_wasm_v1_types_pb.CodeInfo): void;

  getCodeBytes(): Uint8Array | string;
  getCodeBytes_asU8(): Uint8Array;
  getCodeBytes_asB64(): string;
  setCodeBytes(value: Uint8Array | string): void;

  getPinned(): boolean;
  setPinned(value: boolean): void;

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

export namespace Code {
  export type AsObject = {
    codeId: number,
    codeInfo?: cosmwasm_wasm_v1_types_pb.CodeInfo.AsObject,
    codeBytes: Uint8Array | string,
    pinned: boolean,
  }
}

export class Contract extends jspb.Message {
  getContractAddress(): string;
  setContractAddress(value: string): void;

  hasContractInfo(): boolean;
  clearContractInfo(): void;
  getContractInfo(): cosmwasm_wasm_v1_types_pb.ContractInfo | undefined;
  setContractInfo(value?: cosmwasm_wasm_v1_types_pb.ContractInfo): void;

  clearContractStateList(): void;
  getContractStateList(): Array<cosmwasm_wasm_v1_types_pb.Model>;
  setContractStateList(value: Array<cosmwasm_wasm_v1_types_pb.Model>): void;
  addContractState(value?: cosmwasm_wasm_v1_types_pb.Model, index?: number): cosmwasm_wasm_v1_types_pb.Model;

  clearContractCodeHistoryList(): void;
  getContractCodeHistoryList(): Array<cosmwasm_wasm_v1_types_pb.ContractCodeHistoryEntry>;
  setContractCodeHistoryList(value: Array<cosmwasm_wasm_v1_types_pb.ContractCodeHistoryEntry>): void;
  addContractCodeHistory(value?: cosmwasm_wasm_v1_types_pb.ContractCodeHistoryEntry, index?: number): cosmwasm_wasm_v1_types_pb.ContractCodeHistoryEntry;

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

export namespace Contract {
  export type AsObject = {
    contractAddress: string,
    contractInfo?: cosmwasm_wasm_v1_types_pb.ContractInfo.AsObject,
    contractStateList: Array<cosmwasm_wasm_v1_types_pb.Model.AsObject>,
    contractCodeHistoryList: Array<cosmwasm_wasm_v1_types_pb.ContractCodeHistoryEntry.AsObject>,
  }
}

export class Sequence extends jspb.Message {
  getIdKey(): Uint8Array | string;
  getIdKey_asU8(): Uint8Array;
  getIdKey_asB64(): string;
  setIdKey(value: Uint8Array | string): void;

  getValue(): number;
  setValue(value: number): void;

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

export namespace Sequence {
  export type AsObject = {
    idKey: Uint8Array | string,
    value: number,
  }
}

