/**
 * Generated by the protoc-gen-ts.  DO NOT EDIT!
 * compiler version: 3.20.3
 * source: ibc/lightclients/wasm/v1/tx.proto
 * git: https://github.com/thesayyn/protoc-gen-ts */
import * as dependency_1 from "./../../../../cosmos/msg/v1/msg";
import * as pb_1 from "google-protobuf";
import * as grpc_1 from "@grpc/grpc-js";
export namespace ibc.lightclients.wasm.v1 {
    export class MsgStoreCode extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            signer?: string;
            wasm_byte_code?: Uint8Array;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("signer" in data && data.signer != undefined) {
                    this.signer = data.signer;
                }
                if ("wasm_byte_code" in data && data.wasm_byte_code != undefined) {
                    this.wasm_byte_code = data.wasm_byte_code;
                }
            }
        }
        get signer() {
            return pb_1.Message.getFieldWithDefault(this, 1, "") as string;
        }
        set signer(value: string) {
            pb_1.Message.setField(this, 1, value);
        }
        get wasm_byte_code() {
            return pb_1.Message.getFieldWithDefault(this, 2, new Uint8Array(0)) as Uint8Array;
        }
        set wasm_byte_code(value: Uint8Array) {
            pb_1.Message.setField(this, 2, value);
        }
        static fromObject(data: {
            signer?: string;
            wasm_byte_code?: Uint8Array;
        }): MsgStoreCode {
            const message = new MsgStoreCode({});
            if (data.signer != null) {
                message.signer = data.signer;
            }
            if (data.wasm_byte_code != null) {
                message.wasm_byte_code = data.wasm_byte_code;
            }
            return message;
        }
        toObject() {
            const data: {
                signer?: string;
                wasm_byte_code?: Uint8Array;
            } = {};
            if (this.signer != null) {
                data.signer = this.signer;
            }
            if (this.wasm_byte_code != null) {
                data.wasm_byte_code = this.wasm_byte_code;
            }
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (this.signer.length)
                writer.writeString(1, this.signer);
            if (this.wasm_byte_code.length)
                writer.writeBytes(2, this.wasm_byte_code);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgStoreCode {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgStoreCode();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.signer = reader.readString();
                        break;
                    case 2:
                        message.wasm_byte_code = reader.readBytes();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgStoreCode {
            return MsgStoreCode.deserialize(bytes);
        }
    }
    export class MsgStoreCodeResponse extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            checksum?: Uint8Array;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("checksum" in data && data.checksum != undefined) {
                    this.checksum = data.checksum;
                }
            }
        }
        get checksum() {
            return pb_1.Message.getFieldWithDefault(this, 1, new Uint8Array(0)) as Uint8Array;
        }
        set checksum(value: Uint8Array) {
            pb_1.Message.setField(this, 1, value);
        }
        static fromObject(data: {
            checksum?: Uint8Array;
        }): MsgStoreCodeResponse {
            const message = new MsgStoreCodeResponse({});
            if (data.checksum != null) {
                message.checksum = data.checksum;
            }
            return message;
        }
        toObject() {
            const data: {
                checksum?: Uint8Array;
            } = {};
            if (this.checksum != null) {
                data.checksum = this.checksum;
            }
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (this.checksum.length)
                writer.writeBytes(1, this.checksum);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgStoreCodeResponse {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgStoreCodeResponse();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.checksum = reader.readBytes();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgStoreCodeResponse {
            return MsgStoreCodeResponse.deserialize(bytes);
        }
    }
    export class MsgRemoveChecksum extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            signer?: string;
            checksum?: Uint8Array;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("signer" in data && data.signer != undefined) {
                    this.signer = data.signer;
                }
                if ("checksum" in data && data.checksum != undefined) {
                    this.checksum = data.checksum;
                }
            }
        }
        get signer() {
            return pb_1.Message.getFieldWithDefault(this, 1, "") as string;
        }
        set signer(value: string) {
            pb_1.Message.setField(this, 1, value);
        }
        get checksum() {
            return pb_1.Message.getFieldWithDefault(this, 2, new Uint8Array(0)) as Uint8Array;
        }
        set checksum(value: Uint8Array) {
            pb_1.Message.setField(this, 2, value);
        }
        static fromObject(data: {
            signer?: string;
            checksum?: Uint8Array;
        }): MsgRemoveChecksum {
            const message = new MsgRemoveChecksum({});
            if (data.signer != null) {
                message.signer = data.signer;
            }
            if (data.checksum != null) {
                message.checksum = data.checksum;
            }
            return message;
        }
        toObject() {
            const data: {
                signer?: string;
                checksum?: Uint8Array;
            } = {};
            if (this.signer != null) {
                data.signer = this.signer;
            }
            if (this.checksum != null) {
                data.checksum = this.checksum;
            }
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (this.signer.length)
                writer.writeString(1, this.signer);
            if (this.checksum.length)
                writer.writeBytes(2, this.checksum);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgRemoveChecksum {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgRemoveChecksum();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.signer = reader.readString();
                        break;
                    case 2:
                        message.checksum = reader.readBytes();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgRemoveChecksum {
            return MsgRemoveChecksum.deserialize(bytes);
        }
    }
    export class MsgRemoveChecksumResponse extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {}) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") { }
        }
        static fromObject(data: {}): MsgRemoveChecksumResponse {
            const message = new MsgRemoveChecksumResponse({});
            return message;
        }
        toObject() {
            const data: {} = {};
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgRemoveChecksumResponse {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgRemoveChecksumResponse();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgRemoveChecksumResponse {
            return MsgRemoveChecksumResponse.deserialize(bytes);
        }
    }
    export class MsgMigrateContract extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            signer?: string;
            client_id?: string;
            checksum?: Uint8Array;
            msg?: Uint8Array;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("signer" in data && data.signer != undefined) {
                    this.signer = data.signer;
                }
                if ("client_id" in data && data.client_id != undefined) {
                    this.client_id = data.client_id;
                }
                if ("checksum" in data && data.checksum != undefined) {
                    this.checksum = data.checksum;
                }
                if ("msg" in data && data.msg != undefined) {
                    this.msg = data.msg;
                }
            }
        }
        get signer() {
            return pb_1.Message.getFieldWithDefault(this, 1, "") as string;
        }
        set signer(value: string) {
            pb_1.Message.setField(this, 1, value);
        }
        get client_id() {
            return pb_1.Message.getFieldWithDefault(this, 2, "") as string;
        }
        set client_id(value: string) {
            pb_1.Message.setField(this, 2, value);
        }
        get checksum() {
            return pb_1.Message.getFieldWithDefault(this, 3, new Uint8Array(0)) as Uint8Array;
        }
        set checksum(value: Uint8Array) {
            pb_1.Message.setField(this, 3, value);
        }
        get msg() {
            return pb_1.Message.getFieldWithDefault(this, 4, new Uint8Array(0)) as Uint8Array;
        }
        set msg(value: Uint8Array) {
            pb_1.Message.setField(this, 4, value);
        }
        static fromObject(data: {
            signer?: string;
            client_id?: string;
            checksum?: Uint8Array;
            msg?: Uint8Array;
        }): MsgMigrateContract {
            const message = new MsgMigrateContract({});
            if (data.signer != null) {
                message.signer = data.signer;
            }
            if (data.client_id != null) {
                message.client_id = data.client_id;
            }
            if (data.checksum != null) {
                message.checksum = data.checksum;
            }
            if (data.msg != null) {
                message.msg = data.msg;
            }
            return message;
        }
        toObject() {
            const data: {
                signer?: string;
                client_id?: string;
                checksum?: Uint8Array;
                msg?: Uint8Array;
            } = {};
            if (this.signer != null) {
                data.signer = this.signer;
            }
            if (this.client_id != null) {
                data.client_id = this.client_id;
            }
            if (this.checksum != null) {
                data.checksum = this.checksum;
            }
            if (this.msg != null) {
                data.msg = this.msg;
            }
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (this.signer.length)
                writer.writeString(1, this.signer);
            if (this.client_id.length)
                writer.writeString(2, this.client_id);
            if (this.checksum.length)
                writer.writeBytes(3, this.checksum);
            if (this.msg.length)
                writer.writeBytes(4, this.msg);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgMigrateContract {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgMigrateContract();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.signer = reader.readString();
                        break;
                    case 2:
                        message.client_id = reader.readString();
                        break;
                    case 3:
                        message.checksum = reader.readBytes();
                        break;
                    case 4:
                        message.msg = reader.readBytes();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgMigrateContract {
            return MsgMigrateContract.deserialize(bytes);
        }
    }
    export class MsgMigrateContractResponse extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {}) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") { }
        }
        static fromObject(data: {}): MsgMigrateContractResponse {
            const message = new MsgMigrateContractResponse({});
            return message;
        }
        toObject() {
            const data: {} = {};
            return data;
        }
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
            const writer = w || new pb_1.BinaryWriter();
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MsgMigrateContractResponse {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MsgMigrateContractResponse();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): MsgMigrateContractResponse {
            return MsgMigrateContractResponse.deserialize(bytes);
        }
    }
    interface GrpcUnaryServiceInterface<P, R> {
        (message: P, metadata: grpc_1.Metadata, options: grpc_1.CallOptions, callback: grpc_1.requestCallback<R>): grpc_1.ClientUnaryCall;
        (message: P, metadata: grpc_1.Metadata, callback: grpc_1.requestCallback<R>): grpc_1.ClientUnaryCall;
        (message: P, options: grpc_1.CallOptions, callback: grpc_1.requestCallback<R>): grpc_1.ClientUnaryCall;
        (message: P, callback: grpc_1.requestCallback<R>): grpc_1.ClientUnaryCall;
    }
    interface GrpcStreamServiceInterface<P, R> {
        (message: P, metadata: grpc_1.Metadata, options?: grpc_1.CallOptions): grpc_1.ClientReadableStream<R>;
        (message: P, options?: grpc_1.CallOptions): grpc_1.ClientReadableStream<R>;
    }
    interface GrpWritableServiceInterface<P, R> {
        (metadata: grpc_1.Metadata, options: grpc_1.CallOptions, callback: grpc_1.requestCallback<R>): grpc_1.ClientWritableStream<P>;
        (metadata: grpc_1.Metadata, callback: grpc_1.requestCallback<R>): grpc_1.ClientWritableStream<P>;
        (options: grpc_1.CallOptions, callback: grpc_1.requestCallback<R>): grpc_1.ClientWritableStream<P>;
        (callback: grpc_1.requestCallback<R>): grpc_1.ClientWritableStream<P>;
    }
    interface GrpcChunkServiceInterface<P, R> {
        (metadata: grpc_1.Metadata, options?: grpc_1.CallOptions): grpc_1.ClientDuplexStream<P, R>;
        (options?: grpc_1.CallOptions): grpc_1.ClientDuplexStream<P, R>;
    }
    interface GrpcPromiseServiceInterface<P, R> {
        (message: P, metadata: grpc_1.Metadata, options?: grpc_1.CallOptions): Promise<R>;
        (message: P, options?: grpc_1.CallOptions): Promise<R>;
    }
    export abstract class UnimplementedMsgService {
        static definition = {
            StoreCode: {
                path: "/ibc.lightclients.wasm.v1.Msg/StoreCode",
                requestStream: false,
                responseStream: false,
                requestSerialize: (message: MsgStoreCode) => Buffer.from(message.serialize()),
                requestDeserialize: (bytes: Buffer) => MsgStoreCode.deserialize(new Uint8Array(bytes)),
                responseSerialize: (message: MsgStoreCodeResponse) => Buffer.from(message.serialize()),
                responseDeserialize: (bytes: Buffer) => MsgStoreCodeResponse.deserialize(new Uint8Array(bytes))
            },
            RemoveChecksum: {
                path: "/ibc.lightclients.wasm.v1.Msg/RemoveChecksum",
                requestStream: false,
                responseStream: false,
                requestSerialize: (message: MsgRemoveChecksum) => Buffer.from(message.serialize()),
                requestDeserialize: (bytes: Buffer) => MsgRemoveChecksum.deserialize(new Uint8Array(bytes)),
                responseSerialize: (message: MsgRemoveChecksumResponse) => Buffer.from(message.serialize()),
                responseDeserialize: (bytes: Buffer) => MsgRemoveChecksumResponse.deserialize(new Uint8Array(bytes))
            },
            MigrateContract: {
                path: "/ibc.lightclients.wasm.v1.Msg/MigrateContract",
                requestStream: false,
                responseStream: false,
                requestSerialize: (message: MsgMigrateContract) => Buffer.from(message.serialize()),
                requestDeserialize: (bytes: Buffer) => MsgMigrateContract.deserialize(new Uint8Array(bytes)),
                responseSerialize: (message: MsgMigrateContractResponse) => Buffer.from(message.serialize()),
                responseDeserialize: (bytes: Buffer) => MsgMigrateContractResponse.deserialize(new Uint8Array(bytes))
            }
        };
        [method: string]: grpc_1.UntypedHandleCall;
        abstract StoreCode(call: grpc_1.ServerUnaryCall<MsgStoreCode, MsgStoreCodeResponse>, callback: grpc_1.sendUnaryData<MsgStoreCodeResponse>): void;
        abstract RemoveChecksum(call: grpc_1.ServerUnaryCall<MsgRemoveChecksum, MsgRemoveChecksumResponse>, callback: grpc_1.sendUnaryData<MsgRemoveChecksumResponse>): void;
        abstract MigrateContract(call: grpc_1.ServerUnaryCall<MsgMigrateContract, MsgMigrateContractResponse>, callback: grpc_1.sendUnaryData<MsgMigrateContractResponse>): void;
    }
    export class MsgClient extends grpc_1.makeGenericClientConstructor(UnimplementedMsgService.definition, "Msg", {}) {
        constructor(address: string, credentials: grpc_1.ChannelCredentials, options?: Partial<grpc_1.ChannelOptions>) {
            super(address, credentials, options);
        }
        StoreCode: GrpcUnaryServiceInterface<MsgStoreCode, MsgStoreCodeResponse> = (message: MsgStoreCode, metadata: grpc_1.Metadata | grpc_1.CallOptions | grpc_1.requestCallback<MsgStoreCodeResponse>, options?: grpc_1.CallOptions | grpc_1.requestCallback<MsgStoreCodeResponse>, callback?: grpc_1.requestCallback<MsgStoreCodeResponse>): grpc_1.ClientUnaryCall => {
            return super.StoreCode(message, metadata, options, callback);
        };
        RemoveChecksum: GrpcUnaryServiceInterface<MsgRemoveChecksum, MsgRemoveChecksumResponse> = (message: MsgRemoveChecksum, metadata: grpc_1.Metadata | grpc_1.CallOptions | grpc_1.requestCallback<MsgRemoveChecksumResponse>, options?: grpc_1.CallOptions | grpc_1.requestCallback<MsgRemoveChecksumResponse>, callback?: grpc_1.requestCallback<MsgRemoveChecksumResponse>): grpc_1.ClientUnaryCall => {
            return super.RemoveChecksum(message, metadata, options, callback);
        };
        MigrateContract: GrpcUnaryServiceInterface<MsgMigrateContract, MsgMigrateContractResponse> = (message: MsgMigrateContract, metadata: grpc_1.Metadata | grpc_1.CallOptions | grpc_1.requestCallback<MsgMigrateContractResponse>, options?: grpc_1.CallOptions | grpc_1.requestCallback<MsgMigrateContractResponse>, callback?: grpc_1.requestCallback<MsgMigrateContractResponse>): grpc_1.ClientUnaryCall => {
            return super.MigrateContract(message, metadata, options, callback);
        };
    }
}
