/**
 * Generated by the protoc-gen-ts.  DO NOT EDIT!
 * compiler version: 3.20.3
 * source: ibc/core/client/v1/query.proto
 * git: https://github.com/thesayyn/protoc-gen-ts */
import * as dependency_1 from "./../../../../cosmos/base/query/v1beta1/pagination";
import * as dependency_2 from "./../../../../cosmos/query/v1/query";
import * as dependency_3 from "./client";
import * as dependency_4 from "./../../commitment/v1/commitment";
import * as dependency_5 from "./../../../../google/protobuf/any";
import * as dependency_6 from "./../../../../google/api/annotations";
import * as dependency_7 from "./../../../../gogoproto/gogo";
import * as pb_1 from "google-protobuf";
import * as grpc_1 from "@grpc/grpc-js";
export namespace ibc.core.client.v1 {
    export class QueryClientStateRequest extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            client_id?: string;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("client_id" in data && data.client_id != undefined) {
                    this.client_id = data.client_id;
                }
            }
        }
        get client_id() {
            return pb_1.Message.getFieldWithDefault(this, 1, "") as string;
        }
        set client_id(value: string) {
            pb_1.Message.setField(this, 1, value);
        }
        static fromObject(data: {
            client_id?: string;
        }): QueryClientStateRequest {
            const message = new QueryClientStateRequest({});
            if (data.client_id != null) {
                message.client_id = data.client_id;
            }
            return message;
        }
        toObject() {
            const data: {
                client_id?: string;
            } = {};
            if (this.client_id != null) {
                data.client_id = this.client_id;
            }
            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.client_id.length)
                writer.writeString(1, this.client_id);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): QueryClientStateRequest {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new QueryClientStateRequest();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.client_id = reader.readString();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): QueryClientStateRequest {
            return QueryClientStateRequest.deserialize(bytes);
        }
    }
    export class QueryClientStateResponse extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            client_state?: dependency_5.google.protobuf.Any;
            proof?: Uint8Array;
            proof_height?: dependency_3.ibc.core.client.v1.Height;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("client_state" in data && data.client_state != undefined) {
                    this.client_state = data.client_state;
                }
                if ("proof" in data && data.proof != undefined) {
                    this.proof = data.proof;
                }
                if ("proof_height" in data && data.proof_height != undefined) {
                    this.proof_height = data.proof_height;
                }
            }
        }
        get client_state() {
            return pb_1.Message.getWrapperField(this, dependency_5.google.protobuf.Any, 1) as dependency_5.google.protobuf.Any;
        }
        set client_state(value: dependency_5.google.protobuf.Any) {
            pb_1.Message.setWrapperField(this, 1, value);
        }
        get has_client_state() {
            return pb_1.Message.getField(this, 1) != null;
        }
        get proof() {
            return pb_1.Message.getFieldWithDefault(this, 2, new Uint8Array(0)) as Uint8Array;
        }
        set proof(value: Uint8Array) {
            pb_1.Message.setField(this, 2, value);
        }
        get proof_height() {
            return pb_1.Message.getWrapperField(this, dependency_3.ibc.core.client.v1.Height, 3) as dependency_3.ibc.core.client.v1.Height;
        }
        set proof_height(value: dependency_3.ibc.core.client.v1.Height) {
            pb_1.Message.setWrapperField(this, 3, value);
        }
        get has_proof_height() {
            return pb_1.Message.getField(this, 3) != null;
        }
        static fromObject(data: {
            client_state?: ReturnType<typeof dependency_5.google.protobuf.Any.prototype.toObject>;
            proof?: Uint8Array;
            proof_height?: ReturnType<typeof dependency_3.ibc.core.client.v1.Height.prototype.toObject>;
        }): QueryClientStateResponse {
            const message = new QueryClientStateResponse({});
            if (data.client_state != null) {
                message.client_state = dependency_5.google.protobuf.Any.fromObject(data.client_state);
            }
            if (data.proof != null) {
                message.proof = data.proof;
            }
            if (data.proof_height != null) {
                message.proof_height = dependency_3.ibc.core.client.v1.Height.fromObject(data.proof_height);
            }
            return message;
        }
        toObject() {
            const data: {
                client_state?: ReturnType<typeof dependency_5.google.protobuf.Any.prototype.toObject>;
                proof?: Uint8Array;
                proof_height?: ReturnType<typeof dependency_3.ibc.core.client.v1.Height.prototype.toObject>;
            } = {};
            if (this.client_state != null) {
                data.client_state = this.client_state.toObject();
            }
            if (this.proof != null) {
                data.proof = this.proof;
            }
            if (this.proof_height != null) {
                data.proof_height = this.proof_height.toObject();
            }
            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.has_client_state)
                writer.writeMessage(1, this.client_state, () => this.client_state.serialize(writer));
            if (this.proof.length)
                writer.writeBytes(2, this.proof);
            if (this.has_proof_height)
                writer.writeMessage(3, this.proof_height, () => this.proof_height.serialize(writer));
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): QueryClientStateResponse {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new QueryClientStateResponse();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        reader.readMessage(message.client_state, () => message.client_state = dependency_5.google.protobuf.Any.deserialize(reader));
                        break;
                    case 2:
                        message.proof = reader.readBytes();
                        break;
                    case 3:
                        reader.readMessage(message.proof_height, () => message.proof_height = dependency_3.ibc.core.client.v1.Height.deserialize(reader));
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): QueryClientStateResponse {
            return QueryClientStateResponse.deserialize(bytes);
        }
    }
    export class QueryClientStatesRequest extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            pagination?: dependency_1.cosmos.base.query.v1beta1.PageRequest;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("pagination" in data && data.pagination != undefined) {
                    this.pagination = data.pagination;
                }
            }
        }
        get pagination() {
            return pb_1.Message.getWrapperField(this, dependency_1.cosmos.base.query.v1beta1.PageRequest, 1) as dependency_1.cosmos.base.query.v1beta1.PageRequest;
        }
        set pagination(value: dependency_1.cosmos.base.query.v1beta1.PageRequest) {
            pb_1.Message.setWrapperField(this, 1, value);
        }
        get has_pagination() {
            return pb_1.Message.getField(this, 1) != null;
        }
        static fromObject(data: {
            pagination?: ReturnType<typeof dependency_1.cosmos.base.query.v1beta1.PageRequest.prototype.toObject>;
        }): QueryClientStatesRequest {
            const message = new QueryClientStatesRequest({});
            if (data.pagination != null) {
                message.pagination = dependency_1.cosmos.base.query.v1beta1.PageRequest.fromObject(data.pagination);
            }
            return message;
        }
        toObject() {
            const data: {
                pagination?: ReturnType<typeof dependency_1.cosmos.base.query.v1beta1.PageRequest.prototype.toObject>;
            } = {};
            if (this.pagination != null) {
                data.pagination = this.pagination.toObject();
            }
            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.has_pagination)
                writer.writeMessage(1, this.pagination, () => this.pagination.serialize(writer));
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): QueryClientStatesRequest {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new QueryClientStatesRequest();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        reader.readMessage(message.pagination, () => message.pagination = dependency_1.cosmos.base.query.v1beta1.PageRequest.deserialize(reader));
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): QueryClientStatesRequest {
            return QueryClientStatesRequest.deserialize(bytes);
        }
    }
    export class QueryClientStatesResponse extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            client_states?: dependency_3.ibc.core.client.v1.IdentifiedClientState[];
            pagination?: dependency_1.cosmos.base.query.v1beta1.PageResponse;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [1], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("client_states" in data && data.client_states != undefined) {
                    this.client_states = data.client_states;
                }
                if ("pagination" in data && data.pagination != undefined) {
                    this.pagination = data.pagination;
                }
            }
        }
        get client_states() {
            return pb_1.Message.getRepeatedWrapperField(this, dependency_3.ibc.core.client.v1.IdentifiedClientState, 1) as dependency_3.ibc.core.client.v1.IdentifiedClientState[];
        }
        set client_states(value: dependency_3.ibc.core.client.v1.IdentifiedClientState[]) {
            pb_1.Message.setRepeatedWrapperField(this, 1, value);
        }
        get pagination() {
            return pb_1.Message.getWrapperField(this, dependency_1.cosmos.base.query.v1beta1.PageResponse, 2) as dependency_1.cosmos.base.query.v1beta1.PageResponse;
        }
        set pagination(value: dependency_1.cosmos.base.query.v1beta1.PageResponse) {
            pb_1.Message.setWrapperField(this, 2, value);
        }
        get has_pagination() {
            return pb_1.Message.getField(this, 2) != null;
        }
        static fromObject(data: {
            client_states?: ReturnType<typeof dependency_3.ibc.core.client.v1.IdentifiedClientState.prototype.toObject>[];
            pagination?: ReturnType<typeof dependency_1.cosmos.base.query.v1beta1.PageResponse.prototype.toObject>;
        }): QueryClientStatesResponse {
            const message = new QueryClientStatesResponse({});
            if (data.client_states != null) {
                message.client_states = data.client_states.map(item => dependency_3.ibc.core.client.v1.IdentifiedClientState.fromObject(item));
            }
            if (data.pagination != null) {
                message.pagination = dependency_1.cosmos.base.query.v1beta1.PageResponse.fromObject(data.pagination);
            }
            return message;
        }
        toObject() {
            const data: {
                client_states?: ReturnType<typeof dependency_3.ibc.core.client.v1.IdentifiedClientState.prototype.toObject>[];
                pagination?: ReturnType<typeof dependency_1.cosmos.base.query.v1beta1.PageResponse.prototype.toObject>;
            } = {};
            if (this.client_states != null) {
                data.client_states = this.client_states.map((item: dependency_3.ibc.core.client.v1.IdentifiedClientState) => item.toObject());
            }
            if (this.pagination != null) {
                data.pagination = this.pagination.toObject();
            }
            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.client_states.length)
                writer.writeRepeatedMessage(1, this.client_states, (item: dependency_3.ibc.core.client.v1.IdentifiedClientState) => item.serialize(writer));
            if (this.has_pagination)
                writer.writeMessage(2, this.pagination, () => this.pagination.serialize(writer));
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): QueryClientStatesResponse {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new QueryClientStatesResponse();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        reader.readMessage(message.client_states, () => pb_1.Message.addToRepeatedWrapperField(message, 1, dependency_3.ibc.core.client.v1.IdentifiedClientState.deserialize(reader), dependency_3.ibc.core.client.v1.IdentifiedClientState));
                        break;
                    case 2:
                        reader.readMessage(message.pagination, () => message.pagination = dependency_1.cosmos.base.query.v1beta1.PageResponse.deserialize(reader));
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): QueryClientStatesResponse {
            return QueryClientStatesResponse.deserialize(bytes);
        }
    }
    export class QueryConsensusStateRequest extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            client_id?: string;
            revision_number?: number;
            revision_height?: number;
            latest_height?: boolean;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("client_id" in data && data.client_id != undefined) {
                    this.client_id = data.client_id;
                }
                if ("revision_number" in data && data.revision_number != undefined) {
                    this.revision_number = data.revision_number;
                }
                if ("revision_height" in data && data.revision_height != undefined) {
                    this.revision_height = data.revision_height;
                }
                if ("latest_height" in data && data.latest_height != undefined) {
                    this.latest_height = data.latest_height;
                }
            }
        }
        get client_id() {
            return pb_1.Message.getFieldWithDefault(this, 1, "") as string;
        }
        set client_id(value: string) {
            pb_1.Message.setField(this, 1, value);
        }
        get revision_number() {
            return pb_1.Message.getFieldWithDefault(this, 2, 0) as number;
        }
        set revision_number(value: number) {
            pb_1.Message.setField(this, 2, value);
        }
        get revision_height() {
            return pb_1.Message.getFieldWithDefault(this, 3, 0) as number;
        }
        set revision_height(value: number) {
            pb_1.Message.setField(this, 3, value);
        }
        get latest_height() {
            return pb_1.Message.getFieldWithDefault(this, 4, false) as boolean;
        }
        set latest_height(value: boolean) {
            pb_1.Message.setField(this, 4, value);
        }
        static fromObject(data: {
            client_id?: string;
            revision_number?: number;
            revision_height?: number;
            latest_height?: boolean;
        }): QueryConsensusStateRequest {
            const message = new QueryConsensusStateRequest({});
            if (data.client_id != null) {
                message.client_id = data.client_id;
            }
            if (data.revision_number != null) {
                message.revision_number = data.revision_number;
            }
            if (data.revision_height != null) {
                message.revision_height = data.revision_height;
            }
            if (data.latest_height != null) {
                message.latest_height = data.latest_height;
            }
            return message;
        }
        toObject() {
            const data: {
                client_id?: string;
                revision_number?: number;
                revision_height?: number;
                latest_height?: boolean;
            } = {};
            if (this.client_id != null) {
                data.client_id = this.client_id;
            }
            if (this.revision_number != null) {
                data.revision_number = this.revision_number;
            }
            if (this.revision_height != null) {
                data.revision_height = this.revision_height;
            }
            if (this.latest_height != null) {
                data.latest_height = this.latest_height;
            }
            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.client_id.length)
                writer.writeString(1, this.client_id);
            if (this.revision_number != 0)
                writer.writeUint64(2, this.revision_number);
            if (this.revision_height != 0)
                writer.writeUint64(3, this.revision_height);
            if (this.latest_height != false)
                writer.writeBool(4, this.latest_height);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): QueryConsensusStateRequest {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new QueryConsensusStateRequest();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.client_id = reader.readString();
                        break;
                    case 2:
                        message.revision_number = reader.readUint64();
                        break;
                    case 3:
                        message.revision_height = reader.readUint64();
                        break;
                    case 4:
                        message.latest_height = reader.readBool();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): QueryConsensusStateRequest {
            return QueryConsensusStateRequest.deserialize(bytes);
        }
    }
    export class QueryConsensusStateResponse extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            consensus_state?: dependency_5.google.protobuf.Any;
            proof?: Uint8Array;
            proof_height?: dependency_3.ibc.core.client.v1.Height;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("consensus_state" in data && data.consensus_state != undefined) {
                    this.consensus_state = data.consensus_state;
                }
                if ("proof" in data && data.proof != undefined) {
                    this.proof = data.proof;
                }
                if ("proof_height" in data && data.proof_height != undefined) {
                    this.proof_height = data.proof_height;
                }
            }
        }
        get consensus_state() {
            return pb_1.Message.getWrapperField(this, dependency_5.google.protobuf.Any, 1) as dependency_5.google.protobuf.Any;
        }
        set consensus_state(value: dependency_5.google.protobuf.Any) {
            pb_1.Message.setWrapperField(this, 1, value);
        }
        get has_consensus_state() {
            return pb_1.Message.getField(this, 1) != null;
        }
        get proof() {
            return pb_1.Message.getFieldWithDefault(this, 2, new Uint8Array(0)) as Uint8Array;
        }
        set proof(value: Uint8Array) {
            pb_1.Message.setField(this, 2, value);
        }
        get proof_height() {
            return pb_1.Message.getWrapperField(this, dependency_3.ibc.core.client.v1.Height, 3) as dependency_3.ibc.core.client.v1.Height;
        }
        set proof_height(value: dependency_3.ibc.core.client.v1.Height) {
            pb_1.Message.setWrapperField(this, 3, value);
        }
        get has_proof_height() {
            return pb_1.Message.getField(this, 3) != null;
        }
        static fromObject(data: {
            consensus_state?: ReturnType<typeof dependency_5.google.protobuf.Any.prototype.toObject>;
            proof?: Uint8Array;
            proof_height?: ReturnType<typeof dependency_3.ibc.core.client.v1.Height.prototype.toObject>;
        }): QueryConsensusStateResponse {
            const message = new QueryConsensusStateResponse({});
            if (data.consensus_state != null) {
                message.consensus_state = dependency_5.google.protobuf.Any.fromObject(data.consensus_state);
            }
            if (data.proof != null) {
                message.proof = data.proof;
            }
            if (data.proof_height != null) {
                message.proof_height = dependency_3.ibc.core.client.v1.Height.fromObject(data.proof_height);
            }
            return message;
        }
        toObject() {
            const data: {
                consensus_state?: ReturnType<typeof dependency_5.google.protobuf.Any.prototype.toObject>;
                proof?: Uint8Array;
                proof_height?: ReturnType<typeof dependency_3.ibc.core.client.v1.Height.prototype.toObject>;
            } = {};
            if (this.consensus_state != null) {
                data.consensus_state = this.consensus_state.toObject();
            }
            if (this.proof != null) {
                data.proof = this.proof;
            }
            if (this.proof_height != null) {
                data.proof_height = this.proof_height.toObject();
            }
            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.has_consensus_state)
                writer.writeMessage(1, this.consensus_state, () => this.consensus_state.serialize(writer));
            if (this.proof.length)
                writer.writeBytes(2, this.proof);
            if (this.has_proof_height)
                writer.writeMessage(3, this.proof_height, () => this.proof_height.serialize(writer));
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): QueryConsensusStateResponse {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new QueryConsensusStateResponse();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        reader.readMessage(message.consensus_state, () => message.consensus_state = dependency_5.google.protobuf.Any.deserialize(reader));
                        break;
                    case 2:
                        message.proof = reader.readBytes();
                        break;
                    case 3:
                        reader.readMessage(message.proof_height, () => message.proof_height = dependency_3.ibc.core.client.v1.Height.deserialize(reader));
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): QueryConsensusStateResponse {
            return QueryConsensusStateResponse.deserialize(bytes);
        }
    }
    export class QueryConsensusStatesRequest extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            client_id?: string;
            pagination?: dependency_1.cosmos.base.query.v1beta1.PageRequest;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("client_id" in data && data.client_id != undefined) {
                    this.client_id = data.client_id;
                }
                if ("pagination" in data && data.pagination != undefined) {
                    this.pagination = data.pagination;
                }
            }
        }
        get client_id() {
            return pb_1.Message.getFieldWithDefault(this, 1, "") as string;
        }
        set client_id(value: string) {
            pb_1.Message.setField(this, 1, value);
        }
        get pagination() {
            return pb_1.Message.getWrapperField(this, dependency_1.cosmos.base.query.v1beta1.PageRequest, 2) as dependency_1.cosmos.base.query.v1beta1.PageRequest;
        }
        set pagination(value: dependency_1.cosmos.base.query.v1beta1.PageRequest) {
            pb_1.Message.setWrapperField(this, 2, value);
        }
        get has_pagination() {
            return pb_1.Message.getField(this, 2) != null;
        }
        static fromObject(data: {
            client_id?: string;
            pagination?: ReturnType<typeof dependency_1.cosmos.base.query.v1beta1.PageRequest.prototype.toObject>;
        }): QueryConsensusStatesRequest {
            const message = new QueryConsensusStatesRequest({});
            if (data.client_id != null) {
                message.client_id = data.client_id;
            }
            if (data.pagination != null) {
                message.pagination = dependency_1.cosmos.base.query.v1beta1.PageRequest.fromObject(data.pagination);
            }
            return message;
        }
        toObject() {
            const data: {
                client_id?: string;
                pagination?: ReturnType<typeof dependency_1.cosmos.base.query.v1beta1.PageRequest.prototype.toObject>;
            } = {};
            if (this.client_id != null) {
                data.client_id = this.client_id;
            }
            if (this.pagination != null) {
                data.pagination = this.pagination.toObject();
            }
            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.client_id.length)
                writer.writeString(1, this.client_id);
            if (this.has_pagination)
                writer.writeMessage(2, this.pagination, () => this.pagination.serialize(writer));
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): QueryConsensusStatesRequest {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new QueryConsensusStatesRequest();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.client_id = reader.readString();
                        break;
                    case 2:
                        reader.readMessage(message.pagination, () => message.pagination = dependency_1.cosmos.base.query.v1beta1.PageRequest.deserialize(reader));
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): QueryConsensusStatesRequest {
            return QueryConsensusStatesRequest.deserialize(bytes);
        }
    }
    export class QueryConsensusStatesResponse extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            consensus_states?: dependency_3.ibc.core.client.v1.ConsensusStateWithHeight[];
            pagination?: dependency_1.cosmos.base.query.v1beta1.PageResponse;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [1], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("consensus_states" in data && data.consensus_states != undefined) {
                    this.consensus_states = data.consensus_states;
                }
                if ("pagination" in data && data.pagination != undefined) {
                    this.pagination = data.pagination;
                }
            }
        }
        get consensus_states() {
            return pb_1.Message.getRepeatedWrapperField(this, dependency_3.ibc.core.client.v1.ConsensusStateWithHeight, 1) as dependency_3.ibc.core.client.v1.ConsensusStateWithHeight[];
        }
        set consensus_states(value: dependency_3.ibc.core.client.v1.ConsensusStateWithHeight[]) {
            pb_1.Message.setRepeatedWrapperField(this, 1, value);
        }
        get pagination() {
            return pb_1.Message.getWrapperField(this, dependency_1.cosmos.base.query.v1beta1.PageResponse, 2) as dependency_1.cosmos.base.query.v1beta1.PageResponse;
        }
        set pagination(value: dependency_1.cosmos.base.query.v1beta1.PageResponse) {
            pb_1.Message.setWrapperField(this, 2, value);
        }
        get has_pagination() {
            return pb_1.Message.getField(this, 2) != null;
        }
        static fromObject(data: {
            consensus_states?: ReturnType<typeof dependency_3.ibc.core.client.v1.ConsensusStateWithHeight.prototype.toObject>[];
            pagination?: ReturnType<typeof dependency_1.cosmos.base.query.v1beta1.PageResponse.prototype.toObject>;
        }): QueryConsensusStatesResponse {
            const message = new QueryConsensusStatesResponse({});
            if (data.consensus_states != null) {
                message.consensus_states = data.consensus_states.map(item => dependency_3.ibc.core.client.v1.ConsensusStateWithHeight.fromObject(item));
            }
            if (data.pagination != null) {
                message.pagination = dependency_1.cosmos.base.query.v1beta1.PageResponse.fromObject(data.pagination);
            }
            return message;
        }
        toObject() {
            const data: {
                consensus_states?: ReturnType<typeof dependency_3.ibc.core.client.v1.ConsensusStateWithHeight.prototype.toObject>[];
                pagination?: ReturnType<typeof dependency_1.cosmos.base.query.v1beta1.PageResponse.prototype.toObject>;
            } = {};
            if (this.consensus_states != null) {
                data.consensus_states = this.consensus_states.map((item: dependency_3.ibc.core.client.v1.ConsensusStateWithHeight) => item.toObject());
            }
            if (this.pagination != null) {
                data.pagination = this.pagination.toObject();
            }
            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.consensus_states.length)
                writer.writeRepeatedMessage(1, this.consensus_states, (item: dependency_3.ibc.core.client.v1.ConsensusStateWithHeight) => item.serialize(writer));
            if (this.has_pagination)
                writer.writeMessage(2, this.pagination, () => this.pagination.serialize(writer));
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): QueryConsensusStatesResponse {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new QueryConsensusStatesResponse();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        reader.readMessage(message.consensus_states, () => pb_1.Message.addToRepeatedWrapperField(message, 1, dependency_3.ibc.core.client.v1.ConsensusStateWithHeight.deserialize(reader), dependency_3.ibc.core.client.v1.ConsensusStateWithHeight));
                        break;
                    case 2:
                        reader.readMessage(message.pagination, () => message.pagination = dependency_1.cosmos.base.query.v1beta1.PageResponse.deserialize(reader));
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): QueryConsensusStatesResponse {
            return QueryConsensusStatesResponse.deserialize(bytes);
        }
    }
    export class QueryConsensusStateHeightsRequest extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            client_id?: string;
            pagination?: dependency_1.cosmos.base.query.v1beta1.PageRequest;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("client_id" in data && data.client_id != undefined) {
                    this.client_id = data.client_id;
                }
                if ("pagination" in data && data.pagination != undefined) {
                    this.pagination = data.pagination;
                }
            }
        }
        get client_id() {
            return pb_1.Message.getFieldWithDefault(this, 1, "") as string;
        }
        set client_id(value: string) {
            pb_1.Message.setField(this, 1, value);
        }
        get pagination() {
            return pb_1.Message.getWrapperField(this, dependency_1.cosmos.base.query.v1beta1.PageRequest, 2) as dependency_1.cosmos.base.query.v1beta1.PageRequest;
        }
        set pagination(value: dependency_1.cosmos.base.query.v1beta1.PageRequest) {
            pb_1.Message.setWrapperField(this, 2, value);
        }
        get has_pagination() {
            return pb_1.Message.getField(this, 2) != null;
        }
        static fromObject(data: {
            client_id?: string;
            pagination?: ReturnType<typeof dependency_1.cosmos.base.query.v1beta1.PageRequest.prototype.toObject>;
        }): QueryConsensusStateHeightsRequest {
            const message = new QueryConsensusStateHeightsRequest({});
            if (data.client_id != null) {
                message.client_id = data.client_id;
            }
            if (data.pagination != null) {
                message.pagination = dependency_1.cosmos.base.query.v1beta1.PageRequest.fromObject(data.pagination);
            }
            return message;
        }
        toObject() {
            const data: {
                client_id?: string;
                pagination?: ReturnType<typeof dependency_1.cosmos.base.query.v1beta1.PageRequest.prototype.toObject>;
            } = {};
            if (this.client_id != null) {
                data.client_id = this.client_id;
            }
            if (this.pagination != null) {
                data.pagination = this.pagination.toObject();
            }
            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.client_id.length)
                writer.writeString(1, this.client_id);
            if (this.has_pagination)
                writer.writeMessage(2, this.pagination, () => this.pagination.serialize(writer));
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): QueryConsensusStateHeightsRequest {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new QueryConsensusStateHeightsRequest();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.client_id = reader.readString();
                        break;
                    case 2:
                        reader.readMessage(message.pagination, () => message.pagination = dependency_1.cosmos.base.query.v1beta1.PageRequest.deserialize(reader));
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): QueryConsensusStateHeightsRequest {
            return QueryConsensusStateHeightsRequest.deserialize(bytes);
        }
    }
    export class QueryConsensusStateHeightsResponse extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            consensus_state_heights?: dependency_3.ibc.core.client.v1.Height[];
            pagination?: dependency_1.cosmos.base.query.v1beta1.PageResponse;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [1], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("consensus_state_heights" in data && data.consensus_state_heights != undefined) {
                    this.consensus_state_heights = data.consensus_state_heights;
                }
                if ("pagination" in data && data.pagination != undefined) {
                    this.pagination = data.pagination;
                }
            }
        }
        get consensus_state_heights() {
            return pb_1.Message.getRepeatedWrapperField(this, dependency_3.ibc.core.client.v1.Height, 1) as dependency_3.ibc.core.client.v1.Height[];
        }
        set consensus_state_heights(value: dependency_3.ibc.core.client.v1.Height[]) {
            pb_1.Message.setRepeatedWrapperField(this, 1, value);
        }
        get pagination() {
            return pb_1.Message.getWrapperField(this, dependency_1.cosmos.base.query.v1beta1.PageResponse, 2) as dependency_1.cosmos.base.query.v1beta1.PageResponse;
        }
        set pagination(value: dependency_1.cosmos.base.query.v1beta1.PageResponse) {
            pb_1.Message.setWrapperField(this, 2, value);
        }
        get has_pagination() {
            return pb_1.Message.getField(this, 2) != null;
        }
        static fromObject(data: {
            consensus_state_heights?: ReturnType<typeof dependency_3.ibc.core.client.v1.Height.prototype.toObject>[];
            pagination?: ReturnType<typeof dependency_1.cosmos.base.query.v1beta1.PageResponse.prototype.toObject>;
        }): QueryConsensusStateHeightsResponse {
            const message = new QueryConsensusStateHeightsResponse({});
            if (data.consensus_state_heights != null) {
                message.consensus_state_heights = data.consensus_state_heights.map(item => dependency_3.ibc.core.client.v1.Height.fromObject(item));
            }
            if (data.pagination != null) {
                message.pagination = dependency_1.cosmos.base.query.v1beta1.PageResponse.fromObject(data.pagination);
            }
            return message;
        }
        toObject() {
            const data: {
                consensus_state_heights?: ReturnType<typeof dependency_3.ibc.core.client.v1.Height.prototype.toObject>[];
                pagination?: ReturnType<typeof dependency_1.cosmos.base.query.v1beta1.PageResponse.prototype.toObject>;
            } = {};
            if (this.consensus_state_heights != null) {
                data.consensus_state_heights = this.consensus_state_heights.map((item: dependency_3.ibc.core.client.v1.Height) => item.toObject());
            }
            if (this.pagination != null) {
                data.pagination = this.pagination.toObject();
            }
            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.consensus_state_heights.length)
                writer.writeRepeatedMessage(1, this.consensus_state_heights, (item: dependency_3.ibc.core.client.v1.Height) => item.serialize(writer));
            if (this.has_pagination)
                writer.writeMessage(2, this.pagination, () => this.pagination.serialize(writer));
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): QueryConsensusStateHeightsResponse {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new QueryConsensusStateHeightsResponse();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        reader.readMessage(message.consensus_state_heights, () => pb_1.Message.addToRepeatedWrapperField(message, 1, dependency_3.ibc.core.client.v1.Height.deserialize(reader), dependency_3.ibc.core.client.v1.Height));
                        break;
                    case 2:
                        reader.readMessage(message.pagination, () => message.pagination = dependency_1.cosmos.base.query.v1beta1.PageResponse.deserialize(reader));
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): QueryConsensusStateHeightsResponse {
            return QueryConsensusStateHeightsResponse.deserialize(bytes);
        }
    }
    export class QueryClientStatusRequest extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            client_id?: string;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("client_id" in data && data.client_id != undefined) {
                    this.client_id = data.client_id;
                }
            }
        }
        get client_id() {
            return pb_1.Message.getFieldWithDefault(this, 1, "") as string;
        }
        set client_id(value: string) {
            pb_1.Message.setField(this, 1, value);
        }
        static fromObject(data: {
            client_id?: string;
        }): QueryClientStatusRequest {
            const message = new QueryClientStatusRequest({});
            if (data.client_id != null) {
                message.client_id = data.client_id;
            }
            return message;
        }
        toObject() {
            const data: {
                client_id?: string;
            } = {};
            if (this.client_id != null) {
                data.client_id = this.client_id;
            }
            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.client_id.length)
                writer.writeString(1, this.client_id);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): QueryClientStatusRequest {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new QueryClientStatusRequest();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.client_id = reader.readString();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): QueryClientStatusRequest {
            return QueryClientStatusRequest.deserialize(bytes);
        }
    }
    export class QueryClientStatusResponse extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            status?: string;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("status" in data && data.status != undefined) {
                    this.status = data.status;
                }
            }
        }
        get status() {
            return pb_1.Message.getFieldWithDefault(this, 1, "") as string;
        }
        set status(value: string) {
            pb_1.Message.setField(this, 1, value);
        }
        static fromObject(data: {
            status?: string;
        }): QueryClientStatusResponse {
            const message = new QueryClientStatusResponse({});
            if (data.status != null) {
                message.status = data.status;
            }
            return message;
        }
        toObject() {
            const data: {
                status?: string;
            } = {};
            if (this.status != null) {
                data.status = this.status;
            }
            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.status.length)
                writer.writeString(1, this.status);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): QueryClientStatusResponse {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new QueryClientStatusResponse();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.status = reader.readString();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): QueryClientStatusResponse {
            return QueryClientStatusResponse.deserialize(bytes);
        }
    }
    export class QueryClientParamsRequest 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: {}): QueryClientParamsRequest {
            const message = new QueryClientParamsRequest({});
            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): QueryClientParamsRequest {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new QueryClientParamsRequest();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): QueryClientParamsRequest {
            return QueryClientParamsRequest.deserialize(bytes);
        }
    }
    export class QueryClientParamsResponse extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            params?: dependency_3.ibc.core.client.v1.Params;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("params" in data && data.params != undefined) {
                    this.params = data.params;
                }
            }
        }
        get params() {
            return pb_1.Message.getWrapperField(this, dependency_3.ibc.core.client.v1.Params, 1) as dependency_3.ibc.core.client.v1.Params;
        }
        set params(value: dependency_3.ibc.core.client.v1.Params) {
            pb_1.Message.setWrapperField(this, 1, value);
        }
        get has_params() {
            return pb_1.Message.getField(this, 1) != null;
        }
        static fromObject(data: {
            params?: ReturnType<typeof dependency_3.ibc.core.client.v1.Params.prototype.toObject>;
        }): QueryClientParamsResponse {
            const message = new QueryClientParamsResponse({});
            if (data.params != null) {
                message.params = dependency_3.ibc.core.client.v1.Params.fromObject(data.params);
            }
            return message;
        }
        toObject() {
            const data: {
                params?: ReturnType<typeof dependency_3.ibc.core.client.v1.Params.prototype.toObject>;
            } = {};
            if (this.params != null) {
                data.params = this.params.toObject();
            }
            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.has_params)
                writer.writeMessage(1, this.params, () => this.params.serialize(writer));
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): QueryClientParamsResponse {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new QueryClientParamsResponse();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        reader.readMessage(message.params, () => message.params = dependency_3.ibc.core.client.v1.Params.deserialize(reader));
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): QueryClientParamsResponse {
            return QueryClientParamsResponse.deserialize(bytes);
        }
    }
    export class QueryUpgradedClientStateRequest 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: {}): QueryUpgradedClientStateRequest {
            const message = new QueryUpgradedClientStateRequest({});
            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): QueryUpgradedClientStateRequest {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new QueryUpgradedClientStateRequest();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): QueryUpgradedClientStateRequest {
            return QueryUpgradedClientStateRequest.deserialize(bytes);
        }
    }
    export class QueryUpgradedClientStateResponse extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            upgraded_client_state?: dependency_5.google.protobuf.Any;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("upgraded_client_state" in data && data.upgraded_client_state != undefined) {
                    this.upgraded_client_state = data.upgraded_client_state;
                }
            }
        }
        get upgraded_client_state() {
            return pb_1.Message.getWrapperField(this, dependency_5.google.protobuf.Any, 1) as dependency_5.google.protobuf.Any;
        }
        set upgraded_client_state(value: dependency_5.google.protobuf.Any) {
            pb_1.Message.setWrapperField(this, 1, value);
        }
        get has_upgraded_client_state() {
            return pb_1.Message.getField(this, 1) != null;
        }
        static fromObject(data: {
            upgraded_client_state?: ReturnType<typeof dependency_5.google.protobuf.Any.prototype.toObject>;
        }): QueryUpgradedClientStateResponse {
            const message = new QueryUpgradedClientStateResponse({});
            if (data.upgraded_client_state != null) {
                message.upgraded_client_state = dependency_5.google.protobuf.Any.fromObject(data.upgraded_client_state);
            }
            return message;
        }
        toObject() {
            const data: {
                upgraded_client_state?: ReturnType<typeof dependency_5.google.protobuf.Any.prototype.toObject>;
            } = {};
            if (this.upgraded_client_state != null) {
                data.upgraded_client_state = this.upgraded_client_state.toObject();
            }
            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.has_upgraded_client_state)
                writer.writeMessage(1, this.upgraded_client_state, () => this.upgraded_client_state.serialize(writer));
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): QueryUpgradedClientStateResponse {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new QueryUpgradedClientStateResponse();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        reader.readMessage(message.upgraded_client_state, () => message.upgraded_client_state = dependency_5.google.protobuf.Any.deserialize(reader));
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): QueryUpgradedClientStateResponse {
            return QueryUpgradedClientStateResponse.deserialize(bytes);
        }
    }
    export class QueryUpgradedConsensusStateRequest 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: {}): QueryUpgradedConsensusStateRequest {
            const message = new QueryUpgradedConsensusStateRequest({});
            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): QueryUpgradedConsensusStateRequest {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new QueryUpgradedConsensusStateRequest();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): QueryUpgradedConsensusStateRequest {
            return QueryUpgradedConsensusStateRequest.deserialize(bytes);
        }
    }
    export class QueryUpgradedConsensusStateResponse extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            upgraded_consensus_state?: dependency_5.google.protobuf.Any;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("upgraded_consensus_state" in data && data.upgraded_consensus_state != undefined) {
                    this.upgraded_consensus_state = data.upgraded_consensus_state;
                }
            }
        }
        get upgraded_consensus_state() {
            return pb_1.Message.getWrapperField(this, dependency_5.google.protobuf.Any, 1) as dependency_5.google.protobuf.Any;
        }
        set upgraded_consensus_state(value: dependency_5.google.protobuf.Any) {
            pb_1.Message.setWrapperField(this, 1, value);
        }
        get has_upgraded_consensus_state() {
            return pb_1.Message.getField(this, 1) != null;
        }
        static fromObject(data: {
            upgraded_consensus_state?: ReturnType<typeof dependency_5.google.protobuf.Any.prototype.toObject>;
        }): QueryUpgradedConsensusStateResponse {
            const message = new QueryUpgradedConsensusStateResponse({});
            if (data.upgraded_consensus_state != null) {
                message.upgraded_consensus_state = dependency_5.google.protobuf.Any.fromObject(data.upgraded_consensus_state);
            }
            return message;
        }
        toObject() {
            const data: {
                upgraded_consensus_state?: ReturnType<typeof dependency_5.google.protobuf.Any.prototype.toObject>;
            } = {};
            if (this.upgraded_consensus_state != null) {
                data.upgraded_consensus_state = this.upgraded_consensus_state.toObject();
            }
            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.has_upgraded_consensus_state)
                writer.writeMessage(1, this.upgraded_consensus_state, () => this.upgraded_consensus_state.serialize(writer));
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): QueryUpgradedConsensusStateResponse {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new QueryUpgradedConsensusStateResponse();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        reader.readMessage(message.upgraded_consensus_state, () => message.upgraded_consensus_state = dependency_5.google.protobuf.Any.deserialize(reader));
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): QueryUpgradedConsensusStateResponse {
            return QueryUpgradedConsensusStateResponse.deserialize(bytes);
        }
    }
    export class QueryVerifyMembershipRequest extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            client_id?: string;
            proof?: Uint8Array;
            proof_height?: dependency_3.ibc.core.client.v1.Height;
            merkle_path?: dependency_4.ibc.core.commitment.v1.MerklePath;
            value?: Uint8Array;
            time_delay?: number;
            block_delay?: number;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("client_id" in data && data.client_id != undefined) {
                    this.client_id = data.client_id;
                }
                if ("proof" in data && data.proof != undefined) {
                    this.proof = data.proof;
                }
                if ("proof_height" in data && data.proof_height != undefined) {
                    this.proof_height = data.proof_height;
                }
                if ("merkle_path" in data && data.merkle_path != undefined) {
                    this.merkle_path = data.merkle_path;
                }
                if ("value" in data && data.value != undefined) {
                    this.value = data.value;
                }
                if ("time_delay" in data && data.time_delay != undefined) {
                    this.time_delay = data.time_delay;
                }
                if ("block_delay" in data && data.block_delay != undefined) {
                    this.block_delay = data.block_delay;
                }
            }
        }
        get client_id() {
            return pb_1.Message.getFieldWithDefault(this, 1, "") as string;
        }
        set client_id(value: string) {
            pb_1.Message.setField(this, 1, value);
        }
        get proof() {
            return pb_1.Message.getFieldWithDefault(this, 2, new Uint8Array(0)) as Uint8Array;
        }
        set proof(value: Uint8Array) {
            pb_1.Message.setField(this, 2, value);
        }
        get proof_height() {
            return pb_1.Message.getWrapperField(this, dependency_3.ibc.core.client.v1.Height, 3) as dependency_3.ibc.core.client.v1.Height;
        }
        set proof_height(value: dependency_3.ibc.core.client.v1.Height) {
            pb_1.Message.setWrapperField(this, 3, value);
        }
        get has_proof_height() {
            return pb_1.Message.getField(this, 3) != null;
        }
        get merkle_path() {
            return pb_1.Message.getWrapperField(this, dependency_4.ibc.core.commitment.v1.MerklePath, 4) as dependency_4.ibc.core.commitment.v1.MerklePath;
        }
        set merkle_path(value: dependency_4.ibc.core.commitment.v1.MerklePath) {
            pb_1.Message.setWrapperField(this, 4, value);
        }
        get has_merkle_path() {
            return pb_1.Message.getField(this, 4) != null;
        }
        get value() {
            return pb_1.Message.getFieldWithDefault(this, 5, new Uint8Array(0)) as Uint8Array;
        }
        set value(value: Uint8Array) {
            pb_1.Message.setField(this, 5, value);
        }
        get time_delay() {
            return pb_1.Message.getFieldWithDefault(this, 6, 0) as number;
        }
        set time_delay(value: number) {
            pb_1.Message.setField(this, 6, value);
        }
        get block_delay() {
            return pb_1.Message.getFieldWithDefault(this, 7, 0) as number;
        }
        set block_delay(value: number) {
            pb_1.Message.setField(this, 7, value);
        }
        static fromObject(data: {
            client_id?: string;
            proof?: Uint8Array;
            proof_height?: ReturnType<typeof dependency_3.ibc.core.client.v1.Height.prototype.toObject>;
            merkle_path?: ReturnType<typeof dependency_4.ibc.core.commitment.v1.MerklePath.prototype.toObject>;
            value?: Uint8Array;
            time_delay?: number;
            block_delay?: number;
        }): QueryVerifyMembershipRequest {
            const message = new QueryVerifyMembershipRequest({});
            if (data.client_id != null) {
                message.client_id = data.client_id;
            }
            if (data.proof != null) {
                message.proof = data.proof;
            }
            if (data.proof_height != null) {
                message.proof_height = dependency_3.ibc.core.client.v1.Height.fromObject(data.proof_height);
            }
            if (data.merkle_path != null) {
                message.merkle_path = dependency_4.ibc.core.commitment.v1.MerklePath.fromObject(data.merkle_path);
            }
            if (data.value != null) {
                message.value = data.value;
            }
            if (data.time_delay != null) {
                message.time_delay = data.time_delay;
            }
            if (data.block_delay != null) {
                message.block_delay = data.block_delay;
            }
            return message;
        }
        toObject() {
            const data: {
                client_id?: string;
                proof?: Uint8Array;
                proof_height?: ReturnType<typeof dependency_3.ibc.core.client.v1.Height.prototype.toObject>;
                merkle_path?: ReturnType<typeof dependency_4.ibc.core.commitment.v1.MerklePath.prototype.toObject>;
                value?: Uint8Array;
                time_delay?: number;
                block_delay?: number;
            } = {};
            if (this.client_id != null) {
                data.client_id = this.client_id;
            }
            if (this.proof != null) {
                data.proof = this.proof;
            }
            if (this.proof_height != null) {
                data.proof_height = this.proof_height.toObject();
            }
            if (this.merkle_path != null) {
                data.merkle_path = this.merkle_path.toObject();
            }
            if (this.value != null) {
                data.value = this.value;
            }
            if (this.time_delay != null) {
                data.time_delay = this.time_delay;
            }
            if (this.block_delay != null) {
                data.block_delay = this.block_delay;
            }
            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.client_id.length)
                writer.writeString(1, this.client_id);
            if (this.proof.length)
                writer.writeBytes(2, this.proof);
            if (this.has_proof_height)
                writer.writeMessage(3, this.proof_height, () => this.proof_height.serialize(writer));
            if (this.has_merkle_path)
                writer.writeMessage(4, this.merkle_path, () => this.merkle_path.serialize(writer));
            if (this.value.length)
                writer.writeBytes(5, this.value);
            if (this.time_delay != 0)
                writer.writeUint64(6, this.time_delay);
            if (this.block_delay != 0)
                writer.writeUint64(7, this.block_delay);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): QueryVerifyMembershipRequest {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new QueryVerifyMembershipRequest();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.client_id = reader.readString();
                        break;
                    case 2:
                        message.proof = reader.readBytes();
                        break;
                    case 3:
                        reader.readMessage(message.proof_height, () => message.proof_height = dependency_3.ibc.core.client.v1.Height.deserialize(reader));
                        break;
                    case 4:
                        reader.readMessage(message.merkle_path, () => message.merkle_path = dependency_4.ibc.core.commitment.v1.MerklePath.deserialize(reader));
                        break;
                    case 5:
                        message.value = reader.readBytes();
                        break;
                    case 6:
                        message.time_delay = reader.readUint64();
                        break;
                    case 7:
                        message.block_delay = reader.readUint64();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): QueryVerifyMembershipRequest {
            return QueryVerifyMembershipRequest.deserialize(bytes);
        }
    }
    export class QueryVerifyMembershipResponse extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            success?: boolean;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("success" in data && data.success != undefined) {
                    this.success = data.success;
                }
            }
        }
        get success() {
            return pb_1.Message.getFieldWithDefault(this, 1, false) as boolean;
        }
        set success(value: boolean) {
            pb_1.Message.setField(this, 1, value);
        }
        static fromObject(data: {
            success?: boolean;
        }): QueryVerifyMembershipResponse {
            const message = new QueryVerifyMembershipResponse({});
            if (data.success != null) {
                message.success = data.success;
            }
            return message;
        }
        toObject() {
            const data: {
                success?: boolean;
            } = {};
            if (this.success != null) {
                data.success = this.success;
            }
            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.success != false)
                writer.writeBool(1, this.success);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): QueryVerifyMembershipResponse {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new QueryVerifyMembershipResponse();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.success = reader.readBool();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): QueryVerifyMembershipResponse {
            return QueryVerifyMembershipResponse.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 UnimplementedQueryService {
        static definition = {
            ClientState: {
                path: "/ibc.core.client.v1.Query/ClientState",
                requestStream: false,
                responseStream: false,
                requestSerialize: (message: QueryClientStateRequest) => Buffer.from(message.serialize()),
                requestDeserialize: (bytes: Buffer) => QueryClientStateRequest.deserialize(new Uint8Array(bytes)),
                responseSerialize: (message: QueryClientStateResponse) => Buffer.from(message.serialize()),
                responseDeserialize: (bytes: Buffer) => QueryClientStateResponse.deserialize(new Uint8Array(bytes))
            },
            ClientStates: {
                path: "/ibc.core.client.v1.Query/ClientStates",
                requestStream: false,
                responseStream: false,
                requestSerialize: (message: QueryClientStatesRequest) => Buffer.from(message.serialize()),
                requestDeserialize: (bytes: Buffer) => QueryClientStatesRequest.deserialize(new Uint8Array(bytes)),
                responseSerialize: (message: QueryClientStatesResponse) => Buffer.from(message.serialize()),
                responseDeserialize: (bytes: Buffer) => QueryClientStatesResponse.deserialize(new Uint8Array(bytes))
            },
            ConsensusState: {
                path: "/ibc.core.client.v1.Query/ConsensusState",
                requestStream: false,
                responseStream: false,
                requestSerialize: (message: QueryConsensusStateRequest) => Buffer.from(message.serialize()),
                requestDeserialize: (bytes: Buffer) => QueryConsensusStateRequest.deserialize(new Uint8Array(bytes)),
                responseSerialize: (message: QueryConsensusStateResponse) => Buffer.from(message.serialize()),
                responseDeserialize: (bytes: Buffer) => QueryConsensusStateResponse.deserialize(new Uint8Array(bytes))
            },
            ConsensusStates: {
                path: "/ibc.core.client.v1.Query/ConsensusStates",
                requestStream: false,
                responseStream: false,
                requestSerialize: (message: QueryConsensusStatesRequest) => Buffer.from(message.serialize()),
                requestDeserialize: (bytes: Buffer) => QueryConsensusStatesRequest.deserialize(new Uint8Array(bytes)),
                responseSerialize: (message: QueryConsensusStatesResponse) => Buffer.from(message.serialize()),
                responseDeserialize: (bytes: Buffer) => QueryConsensusStatesResponse.deserialize(new Uint8Array(bytes))
            },
            ConsensusStateHeights: {
                path: "/ibc.core.client.v1.Query/ConsensusStateHeights",
                requestStream: false,
                responseStream: false,
                requestSerialize: (message: QueryConsensusStateHeightsRequest) => Buffer.from(message.serialize()),
                requestDeserialize: (bytes: Buffer) => QueryConsensusStateHeightsRequest.deserialize(new Uint8Array(bytes)),
                responseSerialize: (message: QueryConsensusStateHeightsResponse) => Buffer.from(message.serialize()),
                responseDeserialize: (bytes: Buffer) => QueryConsensusStateHeightsResponse.deserialize(new Uint8Array(bytes))
            },
            ClientStatus: {
                path: "/ibc.core.client.v1.Query/ClientStatus",
                requestStream: false,
                responseStream: false,
                requestSerialize: (message: QueryClientStatusRequest) => Buffer.from(message.serialize()),
                requestDeserialize: (bytes: Buffer) => QueryClientStatusRequest.deserialize(new Uint8Array(bytes)),
                responseSerialize: (message: QueryClientStatusResponse) => Buffer.from(message.serialize()),
                responseDeserialize: (bytes: Buffer) => QueryClientStatusResponse.deserialize(new Uint8Array(bytes))
            },
            ClientParams: {
                path: "/ibc.core.client.v1.Query/ClientParams",
                requestStream: false,
                responseStream: false,
                requestSerialize: (message: QueryClientParamsRequest) => Buffer.from(message.serialize()),
                requestDeserialize: (bytes: Buffer) => QueryClientParamsRequest.deserialize(new Uint8Array(bytes)),
                responseSerialize: (message: QueryClientParamsResponse) => Buffer.from(message.serialize()),
                responseDeserialize: (bytes: Buffer) => QueryClientParamsResponse.deserialize(new Uint8Array(bytes))
            },
            UpgradedClientState: {
                path: "/ibc.core.client.v1.Query/UpgradedClientState",
                requestStream: false,
                responseStream: false,
                requestSerialize: (message: QueryUpgradedClientStateRequest) => Buffer.from(message.serialize()),
                requestDeserialize: (bytes: Buffer) => QueryUpgradedClientStateRequest.deserialize(new Uint8Array(bytes)),
                responseSerialize: (message: QueryUpgradedClientStateResponse) => Buffer.from(message.serialize()),
                responseDeserialize: (bytes: Buffer) => QueryUpgradedClientStateResponse.deserialize(new Uint8Array(bytes))
            },
            UpgradedConsensusState: {
                path: "/ibc.core.client.v1.Query/UpgradedConsensusState",
                requestStream: false,
                responseStream: false,
                requestSerialize: (message: QueryUpgradedConsensusStateRequest) => Buffer.from(message.serialize()),
                requestDeserialize: (bytes: Buffer) => QueryUpgradedConsensusStateRequest.deserialize(new Uint8Array(bytes)),
                responseSerialize: (message: QueryUpgradedConsensusStateResponse) => Buffer.from(message.serialize()),
                responseDeserialize: (bytes: Buffer) => QueryUpgradedConsensusStateResponse.deserialize(new Uint8Array(bytes))
            },
            VerifyMembership: {
                path: "/ibc.core.client.v1.Query/VerifyMembership",
                requestStream: false,
                responseStream: false,
                requestSerialize: (message: QueryVerifyMembershipRequest) => Buffer.from(message.serialize()),
                requestDeserialize: (bytes: Buffer) => QueryVerifyMembershipRequest.deserialize(new Uint8Array(bytes)),
                responseSerialize: (message: QueryVerifyMembershipResponse) => Buffer.from(message.serialize()),
                responseDeserialize: (bytes: Buffer) => QueryVerifyMembershipResponse.deserialize(new Uint8Array(bytes))
            }
        };
        [method: string]: grpc_1.UntypedHandleCall;
        abstract ClientState(call: grpc_1.ServerUnaryCall<QueryClientStateRequest, QueryClientStateResponse>, callback: grpc_1.sendUnaryData<QueryClientStateResponse>): void;
        abstract ClientStates(call: grpc_1.ServerUnaryCall<QueryClientStatesRequest, QueryClientStatesResponse>, callback: grpc_1.sendUnaryData<QueryClientStatesResponse>): void;
        abstract ConsensusState(call: grpc_1.ServerUnaryCall<QueryConsensusStateRequest, QueryConsensusStateResponse>, callback: grpc_1.sendUnaryData<QueryConsensusStateResponse>): void;
        abstract ConsensusStates(call: grpc_1.ServerUnaryCall<QueryConsensusStatesRequest, QueryConsensusStatesResponse>, callback: grpc_1.sendUnaryData<QueryConsensusStatesResponse>): void;
        abstract ConsensusStateHeights(call: grpc_1.ServerUnaryCall<QueryConsensusStateHeightsRequest, QueryConsensusStateHeightsResponse>, callback: grpc_1.sendUnaryData<QueryConsensusStateHeightsResponse>): void;
        abstract ClientStatus(call: grpc_1.ServerUnaryCall<QueryClientStatusRequest, QueryClientStatusResponse>, callback: grpc_1.sendUnaryData<QueryClientStatusResponse>): void;
        abstract ClientParams(call: grpc_1.ServerUnaryCall<QueryClientParamsRequest, QueryClientParamsResponse>, callback: grpc_1.sendUnaryData<QueryClientParamsResponse>): void;
        abstract UpgradedClientState(call: grpc_1.ServerUnaryCall<QueryUpgradedClientStateRequest, QueryUpgradedClientStateResponse>, callback: grpc_1.sendUnaryData<QueryUpgradedClientStateResponse>): void;
        abstract UpgradedConsensusState(call: grpc_1.ServerUnaryCall<QueryUpgradedConsensusStateRequest, QueryUpgradedConsensusStateResponse>, callback: grpc_1.sendUnaryData<QueryUpgradedConsensusStateResponse>): void;
        abstract VerifyMembership(call: grpc_1.ServerUnaryCall<QueryVerifyMembershipRequest, QueryVerifyMembershipResponse>, callback: grpc_1.sendUnaryData<QueryVerifyMembershipResponse>): void;
    }
    export class QueryClient extends grpc_1.makeGenericClientConstructor(UnimplementedQueryService.definition, "Query", {}) {
        constructor(address: string, credentials: grpc_1.ChannelCredentials, options?: Partial<grpc_1.ChannelOptions>) {
            super(address, credentials, options);
        }
        ClientState: GrpcUnaryServiceInterface<QueryClientStateRequest, QueryClientStateResponse> = (message: QueryClientStateRequest, metadata: grpc_1.Metadata | grpc_1.CallOptions | grpc_1.requestCallback<QueryClientStateResponse>, options?: grpc_1.CallOptions | grpc_1.requestCallback<QueryClientStateResponse>, callback?: grpc_1.requestCallback<QueryClientStateResponse>): grpc_1.ClientUnaryCall => {
            return super.ClientState(message, metadata, options, callback);
        };
        ClientStates: GrpcUnaryServiceInterface<QueryClientStatesRequest, QueryClientStatesResponse> = (message: QueryClientStatesRequest, metadata: grpc_1.Metadata | grpc_1.CallOptions | grpc_1.requestCallback<QueryClientStatesResponse>, options?: grpc_1.CallOptions | grpc_1.requestCallback<QueryClientStatesResponse>, callback?: grpc_1.requestCallback<QueryClientStatesResponse>): grpc_1.ClientUnaryCall => {
            return super.ClientStates(message, metadata, options, callback);
        };
        ConsensusState: GrpcUnaryServiceInterface<QueryConsensusStateRequest, QueryConsensusStateResponse> = (message: QueryConsensusStateRequest, metadata: grpc_1.Metadata | grpc_1.CallOptions | grpc_1.requestCallback<QueryConsensusStateResponse>, options?: grpc_1.CallOptions | grpc_1.requestCallback<QueryConsensusStateResponse>, callback?: grpc_1.requestCallback<QueryConsensusStateResponse>): grpc_1.ClientUnaryCall => {
            return super.ConsensusState(message, metadata, options, callback);
        };
        ConsensusStates: GrpcUnaryServiceInterface<QueryConsensusStatesRequest, QueryConsensusStatesResponse> = (message: QueryConsensusStatesRequest, metadata: grpc_1.Metadata | grpc_1.CallOptions | grpc_1.requestCallback<QueryConsensusStatesResponse>, options?: grpc_1.CallOptions | grpc_1.requestCallback<QueryConsensusStatesResponse>, callback?: grpc_1.requestCallback<QueryConsensusStatesResponse>): grpc_1.ClientUnaryCall => {
            return super.ConsensusStates(message, metadata, options, callback);
        };
        ConsensusStateHeights: GrpcUnaryServiceInterface<QueryConsensusStateHeightsRequest, QueryConsensusStateHeightsResponse> = (message: QueryConsensusStateHeightsRequest, metadata: grpc_1.Metadata | grpc_1.CallOptions | grpc_1.requestCallback<QueryConsensusStateHeightsResponse>, options?: grpc_1.CallOptions | grpc_1.requestCallback<QueryConsensusStateHeightsResponse>, callback?: grpc_1.requestCallback<QueryConsensusStateHeightsResponse>): grpc_1.ClientUnaryCall => {
            return super.ConsensusStateHeights(message, metadata, options, callback);
        };
        ClientStatus: GrpcUnaryServiceInterface<QueryClientStatusRequest, QueryClientStatusResponse> = (message: QueryClientStatusRequest, metadata: grpc_1.Metadata | grpc_1.CallOptions | grpc_1.requestCallback<QueryClientStatusResponse>, options?: grpc_1.CallOptions | grpc_1.requestCallback<QueryClientStatusResponse>, callback?: grpc_1.requestCallback<QueryClientStatusResponse>): grpc_1.ClientUnaryCall => {
            return super.ClientStatus(message, metadata, options, callback);
        };
        ClientParams: GrpcUnaryServiceInterface<QueryClientParamsRequest, QueryClientParamsResponse> = (message: QueryClientParamsRequest, metadata: grpc_1.Metadata | grpc_1.CallOptions | grpc_1.requestCallback<QueryClientParamsResponse>, options?: grpc_1.CallOptions | grpc_1.requestCallback<QueryClientParamsResponse>, callback?: grpc_1.requestCallback<QueryClientParamsResponse>): grpc_1.ClientUnaryCall => {
            return super.ClientParams(message, metadata, options, callback);
        };
        UpgradedClientState: GrpcUnaryServiceInterface<QueryUpgradedClientStateRequest, QueryUpgradedClientStateResponse> = (message: QueryUpgradedClientStateRequest, metadata: grpc_1.Metadata | grpc_1.CallOptions | grpc_1.requestCallback<QueryUpgradedClientStateResponse>, options?: grpc_1.CallOptions | grpc_1.requestCallback<QueryUpgradedClientStateResponse>, callback?: grpc_1.requestCallback<QueryUpgradedClientStateResponse>): grpc_1.ClientUnaryCall => {
            return super.UpgradedClientState(message, metadata, options, callback);
        };
        UpgradedConsensusState: GrpcUnaryServiceInterface<QueryUpgradedConsensusStateRequest, QueryUpgradedConsensusStateResponse> = (message: QueryUpgradedConsensusStateRequest, metadata: grpc_1.Metadata | grpc_1.CallOptions | grpc_1.requestCallback<QueryUpgradedConsensusStateResponse>, options?: grpc_1.CallOptions | grpc_1.requestCallback<QueryUpgradedConsensusStateResponse>, callback?: grpc_1.requestCallback<QueryUpgradedConsensusStateResponse>): grpc_1.ClientUnaryCall => {
            return super.UpgradedConsensusState(message, metadata, options, callback);
        };
        VerifyMembership: GrpcUnaryServiceInterface<QueryVerifyMembershipRequest, QueryVerifyMembershipResponse> = (message: QueryVerifyMembershipRequest, metadata: grpc_1.Metadata | grpc_1.CallOptions | grpc_1.requestCallback<QueryVerifyMembershipResponse>, options?: grpc_1.CallOptions | grpc_1.requestCallback<QueryVerifyMembershipResponse>, callback?: grpc_1.requestCallback<QueryVerifyMembershipResponse>): grpc_1.ClientUnaryCall => {
            return super.VerifyMembership(message, metadata, options, callback);
        };
    }
}
