/**
 * Generated by the protoc-gen-ts.  DO NOT EDIT!
 * compiler version: 3.20.3
 * source: ibc/lightclients/wasm/v1/wasm.proto
 * git: https://github.com/thesayyn/protoc-gen-ts */
import * as dependency_1 from "./../../../../gogoproto/gogo";
import * as dependency_2 from "./../../../core/client/v1/client";
import * as pb_1 from "google-protobuf";
export namespace ibc.lightclients.wasm.v1 {
    export class ClientState extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            data?: Uint8Array;
            checksum?: Uint8Array;
            latest_height?: dependency_2.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 ("data" in data && data.data != undefined) {
                    this.data = data.data;
                }
                if ("checksum" in data && data.checksum != undefined) {
                    this.checksum = data.checksum;
                }
                if ("latest_height" in data && data.latest_height != undefined) {
                    this.latest_height = data.latest_height;
                }
            }
        }
        get data() {
            return pb_1.Message.getFieldWithDefault(this, 1, new Uint8Array(0)) as Uint8Array;
        }
        set data(value: Uint8Array) {
            pb_1.Message.setField(this, 1, value);
        }
        get checksum() {
            return pb_1.Message.getFieldWithDefault(this, 2, new Uint8Array(0)) as Uint8Array;
        }
        set checksum(value: Uint8Array) {
            pb_1.Message.setField(this, 2, value);
        }
        get latest_height() {
            return pb_1.Message.getWrapperField(this, dependency_2.ibc.core.client.v1.Height, 3) as dependency_2.ibc.core.client.v1.Height;
        }
        set latest_height(value: dependency_2.ibc.core.client.v1.Height) {
            pb_1.Message.setWrapperField(this, 3, value);
        }
        get has_latest_height() {
            return pb_1.Message.getField(this, 3) != null;
        }
        static fromObject(data: {
            data?: Uint8Array;
            checksum?: Uint8Array;
            latest_height?: ReturnType<typeof dependency_2.ibc.core.client.v1.Height.prototype.toObject>;
        }): ClientState {
            const message = new ClientState({});
            if (data.data != null) {
                message.data = data.data;
            }
            if (data.checksum != null) {
                message.checksum = data.checksum;
            }
            if (data.latest_height != null) {
                message.latest_height = dependency_2.ibc.core.client.v1.Height.fromObject(data.latest_height);
            }
            return message;
        }
        toObject() {
            const data: {
                data?: Uint8Array;
                checksum?: Uint8Array;
                latest_height?: ReturnType<typeof dependency_2.ibc.core.client.v1.Height.prototype.toObject>;
            } = {};
            if (this.data != null) {
                data.data = this.data;
            }
            if (this.checksum != null) {
                data.checksum = this.checksum;
            }
            if (this.latest_height != null) {
                data.latest_height = this.latest_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.data.length)
                writer.writeBytes(1, this.data);
            if (this.checksum.length)
                writer.writeBytes(2, this.checksum);
            if (this.has_latest_height)
                writer.writeMessage(3, this.latest_height, () => this.latest_height.serialize(writer));
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): ClientState {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new ClientState();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.data = reader.readBytes();
                        break;
                    case 2:
                        message.checksum = reader.readBytes();
                        break;
                    case 3:
                        reader.readMessage(message.latest_height, () => message.latest_height = dependency_2.ibc.core.client.v1.Height.deserialize(reader));
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): ClientState {
            return ClientState.deserialize(bytes);
        }
    }
    export class ConsensusState extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            data?: Uint8Array;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("data" in data && data.data != undefined) {
                    this.data = data.data;
                }
            }
        }
        get data() {
            return pb_1.Message.getFieldWithDefault(this, 1, new Uint8Array(0)) as Uint8Array;
        }
        set data(value: Uint8Array) {
            pb_1.Message.setField(this, 1, value);
        }
        static fromObject(data: {
            data?: Uint8Array;
        }): ConsensusState {
            const message = new ConsensusState({});
            if (data.data != null) {
                message.data = data.data;
            }
            return message;
        }
        toObject() {
            const data: {
                data?: Uint8Array;
            } = {};
            if (this.data != null) {
                data.data = this.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 (this.data.length)
                writer.writeBytes(1, this.data);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): ConsensusState {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new ConsensusState();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.data = reader.readBytes();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): ConsensusState {
            return ConsensusState.deserialize(bytes);
        }
    }
    export class ClientMessage extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            data?: Uint8Array;
        }) {
            super();
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
            if (!Array.isArray(data) && typeof data == "object") {
                if ("data" in data && data.data != undefined) {
                    this.data = data.data;
                }
            }
        }
        get data() {
            return pb_1.Message.getFieldWithDefault(this, 1, new Uint8Array(0)) as Uint8Array;
        }
        set data(value: Uint8Array) {
            pb_1.Message.setField(this, 1, value);
        }
        static fromObject(data: {
            data?: Uint8Array;
        }): ClientMessage {
            const message = new ClientMessage({});
            if (data.data != null) {
                message.data = data.data;
            }
            return message;
        }
        toObject() {
            const data: {
                data?: Uint8Array;
            } = {};
            if (this.data != null) {
                data.data = this.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 (this.data.length)
                writer.writeBytes(1, this.data);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): ClientMessage {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new ClientMessage();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.data = reader.readBytes();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): ClientMessage {
            return ClientMessage.deserialize(bytes);
        }
    }
    /** @deprecated*/
    export class Checksums extends pb_1.Message {
        #one_of_decls: number[][] = [];
        constructor(data?: any[] | {
            checksums?: Uint8Array[];
        }) {
            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 ("checksums" in data && data.checksums != undefined) {
                    this.checksums = data.checksums;
                }
            }
        }
        get checksums() {
            return pb_1.Message.getFieldWithDefault(this, 1, []) as Uint8Array[];
        }
        set checksums(value: Uint8Array[]) {
            pb_1.Message.setField(this, 1, value);
        }
        static fromObject(data: {
            checksums?: Uint8Array[];
        }): Checksums {
            const message = new Checksums({});
            if (data.checksums != null) {
                message.checksums = data.checksums;
            }
            return message;
        }
        toObject() {
            const data: {
                checksums?: Uint8Array[];
            } = {};
            if (this.checksums != null) {
                data.checksums = this.checksums;
            }
            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.checksums.length)
                writer.writeRepeatedBytes(1, this.checksums);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): Checksums {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new Checksums();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        pb_1.Message.addToRepeatedField(message, 1, reader.readBytes());
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary(): Uint8Array {
            return this.serialize();
        }
        static deserializeBinary(bytes: Uint8Array): Checksums {
            return Checksums.deserialize(bytes);
        }
    }
}
