import _m0 from "protobufjs/minimal";
export declare const protobufPackage = "tendermint.spn.types";
/** MonitoringPacketData is the IBC packet for monitoring modules */
export interface MonitoringPacketData {
    /** this line is used by starport scaffolding # ibc/packet/proto/field */
    monitoringPacket: MonitoringPacket | undefined;
}
/** MonitoringPacketAck defines a struct for the packet acknowledgment */
export interface MonitoringPacketAck {
}
/** MonitoringPacket is the packet sent over IBC that contains all the signature counts */
export interface MonitoringPacket {
    blockHeight: number;
    signatureCounts: SignatureCounts | undefined;
}
/** SignatureCounts contains information about signature reporting for a number of blocks */
export interface SignatureCounts {
    blockCount: number;
    counts: SignatureCount[];
}
/**
 * SignatureCount contains information of signature reporting for one specific validator with consensus address
 * RelativeSignatures is the sum of all signatures relative to the validator set size
 */
export interface SignatureCount {
    opAddress: string;
    RelativeSignatures: string;
}
export declare const MonitoringPacketData: {
    encode(message: MonitoringPacketData, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): MonitoringPacketData;
    fromJSON(object: any): MonitoringPacketData;
    toJSON(message: MonitoringPacketData): unknown;
    fromPartial<I extends {
        monitoringPacket?: {
            blockHeight?: number;
            signatureCounts?: {
                blockCount?: number;
                counts?: {
                    opAddress?: string;
                    RelativeSignatures?: string;
                }[];
            };
        };
    } & {
        monitoringPacket?: {
            blockHeight?: number;
            signatureCounts?: {
                blockCount?: number;
                counts?: {
                    opAddress?: string;
                    RelativeSignatures?: string;
                }[];
            };
        } & {
            blockHeight?: number;
            signatureCounts?: {
                blockCount?: number;
                counts?: {
                    opAddress?: string;
                    RelativeSignatures?: string;
                }[];
            } & {
                blockCount?: number;
                counts?: {
                    opAddress?: string;
                    RelativeSignatures?: string;
                }[] & ({
                    opAddress?: string;
                    RelativeSignatures?: string;
                } & {
                    opAddress?: string;
                    RelativeSignatures?: string;
                } & { [K in Exclude<keyof I["monitoringPacket"]["signatureCounts"]["counts"][number], keyof SignatureCount>]: never; })[] & { [K_1 in Exclude<keyof I["monitoringPacket"]["signatureCounts"]["counts"], keyof {
                    opAddress?: string;
                    RelativeSignatures?: string;
                }[]>]: never; };
            } & { [K_2 in Exclude<keyof I["monitoringPacket"]["signatureCounts"], keyof SignatureCounts>]: never; };
        } & { [K_3 in Exclude<keyof I["monitoringPacket"], keyof MonitoringPacket>]: never; };
    } & { [K_4 in Exclude<keyof I, "monitoringPacket">]: never; }>(object: I): MonitoringPacketData;
};
export declare const MonitoringPacketAck: {
    encode(_: MonitoringPacketAck, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): MonitoringPacketAck;
    fromJSON(_: any): MonitoringPacketAck;
    toJSON(_: MonitoringPacketAck): unknown;
    fromPartial<I extends {} & {} & { [K in Exclude<keyof I, never>]: never; }>(_: I): MonitoringPacketAck;
};
export declare const MonitoringPacket: {
    encode(message: MonitoringPacket, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): MonitoringPacket;
    fromJSON(object: any): MonitoringPacket;
    toJSON(message: MonitoringPacket): unknown;
    fromPartial<I extends {
        blockHeight?: number;
        signatureCounts?: {
            blockCount?: number;
            counts?: {
                opAddress?: string;
                RelativeSignatures?: string;
            }[];
        };
    } & {
        blockHeight?: number;
        signatureCounts?: {
            blockCount?: number;
            counts?: {
                opAddress?: string;
                RelativeSignatures?: string;
            }[];
        } & {
            blockCount?: number;
            counts?: {
                opAddress?: string;
                RelativeSignatures?: string;
            }[] & ({
                opAddress?: string;
                RelativeSignatures?: string;
            } & {
                opAddress?: string;
                RelativeSignatures?: string;
            } & { [K in Exclude<keyof I["signatureCounts"]["counts"][number], keyof SignatureCount>]: never; })[] & { [K_1 in Exclude<keyof I["signatureCounts"]["counts"], keyof {
                opAddress?: string;
                RelativeSignatures?: string;
            }[]>]: never; };
        } & { [K_2 in Exclude<keyof I["signatureCounts"], keyof SignatureCounts>]: never; };
    } & { [K_3 in Exclude<keyof I, keyof MonitoringPacket>]: never; }>(object: I): MonitoringPacket;
};
export declare const SignatureCounts: {
    encode(message: SignatureCounts, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): SignatureCounts;
    fromJSON(object: any): SignatureCounts;
    toJSON(message: SignatureCounts): unknown;
    fromPartial<I extends {
        blockCount?: number;
        counts?: {
            opAddress?: string;
            RelativeSignatures?: string;
        }[];
    } & {
        blockCount?: number;
        counts?: {
            opAddress?: string;
            RelativeSignatures?: string;
        }[] & ({
            opAddress?: string;
            RelativeSignatures?: string;
        } & {
            opAddress?: string;
            RelativeSignatures?: string;
        } & { [K in Exclude<keyof I["counts"][number], keyof SignatureCount>]: never; })[] & { [K_1 in Exclude<keyof I["counts"], keyof {
            opAddress?: string;
            RelativeSignatures?: string;
        }[]>]: never; };
    } & { [K_2 in Exclude<keyof I, keyof SignatureCounts>]: never; }>(object: I): SignatureCounts;
};
export declare const SignatureCount: {
    encode(message: SignatureCount, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): SignatureCount;
    fromJSON(object: any): SignatureCount;
    toJSON(message: SignatureCount): unknown;
    fromPartial<I extends {
        opAddress?: string;
        RelativeSignatures?: string;
    } & {
        opAddress?: string;
        RelativeSignatures?: string;
    } & { [K in Exclude<keyof I, keyof SignatureCount>]: never; }>(object: I): SignatureCount;
};
declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
export declare type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
    [K in keyof T]?: DeepPartial<T[K]>;
} : Partial<T>;
declare type KeysOfUnion<T> = T extends T ? keyof T : never;
export declare type Exact<P, I extends P> = P extends Builtin ? P : P & {
    [K in keyof P]: Exact<P[K], I[K]>;
} & {
    [K in Exclude<keyof I, KeysOfUnion<P>>]: never;
};
export {};
