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

import * as jspb from "google-protobuf";
import * as gogoproto_gogo_pb from "../../../gogoproto/gogo_pb";
import * as cosmos_proto_cosmos_pb from "../../../cosmos_proto/cosmos_pb";
import * as cosmos_base_v1beta1_coin_pb from "../../../cosmos/base/v1beta1/coin_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 StoreCodeProposal extends jspb.Message {
  getTitle(): string;
  setTitle(value: string): void;

  getDescription(): string;
  setDescription(value: string): void;

  getRunAs(): string;
  setRunAs(value: string): void;

  getWasmByteCode(): Uint8Array | string;
  getWasmByteCode_asU8(): Uint8Array;
  getWasmByteCode_asB64(): string;
  setWasmByteCode(value: Uint8Array | string): void;

  hasInstantiatePermission(): boolean;
  clearInstantiatePermission(): void;
  getInstantiatePermission(): cosmwasm_wasm_v1_types_pb.AccessConfig | undefined;
  setInstantiatePermission(value?: cosmwasm_wasm_v1_types_pb.AccessConfig): void;

  getUnpinCode(): boolean;
  setUnpinCode(value: boolean): void;

  getSource(): string;
  setSource(value: string): void;

  getBuilder(): string;
  setBuilder(value: string): void;

  getCodeHash(): Uint8Array | string;
  getCodeHash_asU8(): Uint8Array;
  getCodeHash_asB64(): string;
  setCodeHash(value: Uint8Array | string): void;

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

export namespace StoreCodeProposal {
  export type AsObject = {
    title: string,
    description: string,
    runAs: string,
    wasmByteCode: Uint8Array | string,
    instantiatePermission?: cosmwasm_wasm_v1_types_pb.AccessConfig.AsObject,
    unpinCode: boolean,
    source: string,
    builder: string,
    codeHash: Uint8Array | string,
  }
}

export class InstantiateContractProposal extends jspb.Message {
  getTitle(): string;
  setTitle(value: string): void;

  getDescription(): string;
  setDescription(value: string): void;

  getRunAs(): string;
  setRunAs(value: string): void;

  getAdmin(): string;
  setAdmin(value: string): void;

  getCodeId(): number;
  setCodeId(value: number): void;

  getLabel(): string;
  setLabel(value: string): void;

  getMsg(): Uint8Array | string;
  getMsg_asU8(): Uint8Array;
  getMsg_asB64(): string;
  setMsg(value: Uint8Array | string): void;

  clearFundsList(): void;
  getFundsList(): Array<cosmos_base_v1beta1_coin_pb.Coin>;
  setFundsList(value: Array<cosmos_base_v1beta1_coin_pb.Coin>): void;
  addFunds(value?: cosmos_base_v1beta1_coin_pb.Coin, index?: number): cosmos_base_v1beta1_coin_pb.Coin;

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

export namespace InstantiateContractProposal {
  export type AsObject = {
    title: string,
    description: string,
    runAs: string,
    admin: string,
    codeId: number,
    label: string,
    msg: Uint8Array | string,
    fundsList: Array<cosmos_base_v1beta1_coin_pb.Coin.AsObject>,
  }
}

export class InstantiateContract2Proposal extends jspb.Message {
  getTitle(): string;
  setTitle(value: string): void;

  getDescription(): string;
  setDescription(value: string): void;

  getRunAs(): string;
  setRunAs(value: string): void;

  getAdmin(): string;
  setAdmin(value: string): void;

  getCodeId(): number;
  setCodeId(value: number): void;

  getLabel(): string;
  setLabel(value: string): void;

  getMsg(): Uint8Array | string;
  getMsg_asU8(): Uint8Array;
  getMsg_asB64(): string;
  setMsg(value: Uint8Array | string): void;

  clearFundsList(): void;
  getFundsList(): Array<cosmos_base_v1beta1_coin_pb.Coin>;
  setFundsList(value: Array<cosmos_base_v1beta1_coin_pb.Coin>): void;
  addFunds(value?: cosmos_base_v1beta1_coin_pb.Coin, index?: number): cosmos_base_v1beta1_coin_pb.Coin;

  getSalt(): Uint8Array | string;
  getSalt_asU8(): Uint8Array;
  getSalt_asB64(): string;
  setSalt(value: Uint8Array | string): void;

  getFixMsg(): boolean;
  setFixMsg(value: boolean): void;

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

export namespace InstantiateContract2Proposal {
  export type AsObject = {
    title: string,
    description: string,
    runAs: string,
    admin: string,
    codeId: number,
    label: string,
    msg: Uint8Array | string,
    fundsList: Array<cosmos_base_v1beta1_coin_pb.Coin.AsObject>,
    salt: Uint8Array | string,
    fixMsg: boolean,
  }
}

export class MigrateContractProposal extends jspb.Message {
  getTitle(): string;
  setTitle(value: string): void;

  getDescription(): string;
  setDescription(value: string): void;

  getContract(): string;
  setContract(value: string): void;

  getCodeId(): number;
  setCodeId(value: number): void;

  getMsg(): Uint8Array | string;
  getMsg_asU8(): Uint8Array;
  getMsg_asB64(): string;
  setMsg(value: Uint8Array | string): void;

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

export namespace MigrateContractProposal {
  export type AsObject = {
    title: string,
    description: string,
    contract: string,
    codeId: number,
    msg: Uint8Array | string,
  }
}

export class SudoContractProposal extends jspb.Message {
  getTitle(): string;
  setTitle(value: string): void;

  getDescription(): string;
  setDescription(value: string): void;

  getContract(): string;
  setContract(value: string): void;

  getMsg(): Uint8Array | string;
  getMsg_asU8(): Uint8Array;
  getMsg_asB64(): string;
  setMsg(value: Uint8Array | string): void;

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

export namespace SudoContractProposal {
  export type AsObject = {
    title: string,
    description: string,
    contract: string,
    msg: Uint8Array | string,
  }
}

export class ExecuteContractProposal extends jspb.Message {
  getTitle(): string;
  setTitle(value: string): void;

  getDescription(): string;
  setDescription(value: string): void;

  getRunAs(): string;
  setRunAs(value: string): void;

  getContract(): string;
  setContract(value: string): void;

  getMsg(): Uint8Array | string;
  getMsg_asU8(): Uint8Array;
  getMsg_asB64(): string;
  setMsg(value: Uint8Array | string): void;

  clearFundsList(): void;
  getFundsList(): Array<cosmos_base_v1beta1_coin_pb.Coin>;
  setFundsList(value: Array<cosmos_base_v1beta1_coin_pb.Coin>): void;
  addFunds(value?: cosmos_base_v1beta1_coin_pb.Coin, index?: number): cosmos_base_v1beta1_coin_pb.Coin;

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

export namespace ExecuteContractProposal {
  export type AsObject = {
    title: string,
    description: string,
    runAs: string,
    contract: string,
    msg: Uint8Array | string,
    fundsList: Array<cosmos_base_v1beta1_coin_pb.Coin.AsObject>,
  }
}

export class UpdateAdminProposal extends jspb.Message {
  getTitle(): string;
  setTitle(value: string): void;

  getDescription(): string;
  setDescription(value: string): void;

  getNewAdmin(): string;
  setNewAdmin(value: string): void;

  getContract(): string;
  setContract(value: string): void;

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

export namespace UpdateAdminProposal {
  export type AsObject = {
    title: string,
    description: string,
    newAdmin: string,
    contract: string,
  }
}

export class ClearAdminProposal extends jspb.Message {
  getTitle(): string;
  setTitle(value: string): void;

  getDescription(): string;
  setDescription(value: string): void;

  getContract(): string;
  setContract(value: string): void;

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

export namespace ClearAdminProposal {
  export type AsObject = {
    title: string,
    description: string,
    contract: string,
  }
}

export class PinCodesProposal extends jspb.Message {
  getTitle(): string;
  setTitle(value: string): void;

  getDescription(): string;
  setDescription(value: string): void;

  clearCodeIdsList(): void;
  getCodeIdsList(): Array<number>;
  setCodeIdsList(value: Array<number>): void;
  addCodeIds(value: number, index?: number): number;

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

export namespace PinCodesProposal {
  export type AsObject = {
    title: string,
    description: string,
    codeIdsList: Array<number>,
  }
}

export class UnpinCodesProposal extends jspb.Message {
  getTitle(): string;
  setTitle(value: string): void;

  getDescription(): string;
  setDescription(value: string): void;

  clearCodeIdsList(): void;
  getCodeIdsList(): Array<number>;
  setCodeIdsList(value: Array<number>): void;
  addCodeIds(value: number, index?: number): number;

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

export namespace UnpinCodesProposal {
  export type AsObject = {
    title: string,
    description: string,
    codeIdsList: Array<number>,
  }
}

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

  hasInstantiatePermission(): boolean;
  clearInstantiatePermission(): void;
  getInstantiatePermission(): cosmwasm_wasm_v1_types_pb.AccessConfig | undefined;
  setInstantiatePermission(value?: cosmwasm_wasm_v1_types_pb.AccessConfig): void;

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

export namespace AccessConfigUpdate {
  export type AsObject = {
    codeId: number,
    instantiatePermission?: cosmwasm_wasm_v1_types_pb.AccessConfig.AsObject,
  }
}

export class UpdateInstantiateConfigProposal extends jspb.Message {
  getTitle(): string;
  setTitle(value: string): void;

  getDescription(): string;
  setDescription(value: string): void;

  clearAccessConfigUpdatesList(): void;
  getAccessConfigUpdatesList(): Array<AccessConfigUpdate>;
  setAccessConfigUpdatesList(value: Array<AccessConfigUpdate>): void;
  addAccessConfigUpdates(value?: AccessConfigUpdate, index?: number): AccessConfigUpdate;

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

export namespace UpdateInstantiateConfigProposal {
  export type AsObject = {
    title: string,
    description: string,
    accessConfigUpdatesList: Array<AccessConfigUpdate.AsObject>,
  }
}

export class StoreAndInstantiateContractProposal extends jspb.Message {
  getTitle(): string;
  setTitle(value: string): void;

  getDescription(): string;
  setDescription(value: string): void;

  getRunAs(): string;
  setRunAs(value: string): void;

  getWasmByteCode(): Uint8Array | string;
  getWasmByteCode_asU8(): Uint8Array;
  getWasmByteCode_asB64(): string;
  setWasmByteCode(value: Uint8Array | string): void;

  hasInstantiatePermission(): boolean;
  clearInstantiatePermission(): void;
  getInstantiatePermission(): cosmwasm_wasm_v1_types_pb.AccessConfig | undefined;
  setInstantiatePermission(value?: cosmwasm_wasm_v1_types_pb.AccessConfig): void;

  getUnpinCode(): boolean;
  setUnpinCode(value: boolean): void;

  getAdmin(): string;
  setAdmin(value: string): void;

  getLabel(): string;
  setLabel(value: string): void;

  getMsg(): Uint8Array | string;
  getMsg_asU8(): Uint8Array;
  getMsg_asB64(): string;
  setMsg(value: Uint8Array | string): void;

  clearFundsList(): void;
  getFundsList(): Array<cosmos_base_v1beta1_coin_pb.Coin>;
  setFundsList(value: Array<cosmos_base_v1beta1_coin_pb.Coin>): void;
  addFunds(value?: cosmos_base_v1beta1_coin_pb.Coin, index?: number): cosmos_base_v1beta1_coin_pb.Coin;

  getSource(): string;
  setSource(value: string): void;

  getBuilder(): string;
  setBuilder(value: string): void;

  getCodeHash(): Uint8Array | string;
  getCodeHash_asU8(): Uint8Array;
  getCodeHash_asB64(): string;
  setCodeHash(value: Uint8Array | string): void;

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

export namespace StoreAndInstantiateContractProposal {
  export type AsObject = {
    title: string,
    description: string,
    runAs: string,
    wasmByteCode: Uint8Array | string,
    instantiatePermission?: cosmwasm_wasm_v1_types_pb.AccessConfig.AsObject,
    unpinCode: boolean,
    admin: string,
    label: string,
    msg: Uint8Array | string,
    fundsList: Array<cosmos_base_v1beta1_coin_pb.Coin.AsObject>,
    source: string,
    builder: string,
    codeHash: Uint8Array | string,
  }
}

