import Long from "long"; import _m0 from "protobufjs/minimal"; import { ProofSpec } from "../../../../cosmos/ics23/v1/proofs"; import { Duration } from "../../../../google/protobuf/duration"; import { SignedHeader } from "../../../../tendermint/types/types"; import { ValidatorSet } from "../../../../tendermint/types/validator"; import { Height } from "../../../core/client/v1/client"; import { MerkleRoot } from "../../../core/commitment/v1/commitment"; export declare const protobufPackage = "ibc.lightclients.tendermint.v1"; /** * ClientState from Tendermint tracks the current validator set, latest height, * and a possible frozen height. */ export interface ClientState { chainId: string; trustLevel: Fraction | undefined; /** * duration of the period since the LatestTimestamp during which the * submitted headers are valid for upgrade */ trustingPeriod: Duration | undefined; /** duration of the staking unbonding period */ unbondingPeriod: Duration | undefined; /** defines how much new (untrusted) header's Time can drift into the future. */ maxClockDrift: Duration | undefined; /** Block height when the client was frozen due to a misbehaviour */ frozenHeight: Height | undefined; /** Latest height the client was updated to */ latestHeight: Height | undefined; /** Proof specifications used in verifying counterparty state */ proofSpecs: ProofSpec[]; /** * Path at which next upgraded client will be committed. * Each element corresponds to the key for a single CommitmentProof in the * chained proof. NOTE: ClientState must stored under * `{upgradePath}/{upgradeHeight}/clientState` ConsensusState must be stored * under `{upgradepath}/{upgradeHeight}/consensusState` For SDK chains using * the default upgrade module, upgrade_path should be []string{"upgrade", * "upgradedIBCState"}` */ upgradePath: string[]; /** * allow_update_after_expiry is deprecated * * @deprecated */ allowUpdateAfterExpiry: boolean; /** * allow_update_after_misbehaviour is deprecated * * @deprecated */ allowUpdateAfterMisbehaviour: boolean; } /** ConsensusState defines the consensus state from Tendermint. */ export interface ConsensusState { /** * timestamp that corresponds to the block height in which the ConsensusState * was stored. */ timestamp: Date | undefined; /** commitment root (i.e app hash) */ root: MerkleRoot | undefined; nextValidatorsHash: Uint8Array; } /** * Misbehaviour is a wrapper over two conflicting Headers * that implements Misbehaviour interface expected by ICS-02 */ export interface Misbehaviour { /** * ClientID is deprecated * * @deprecated */ clientId: string; header1: Header | undefined; header2: Header | undefined; } /** * Header defines the Tendermint client consensus Header. * It encapsulates all the information necessary to update from a trusted * Tendermint ConsensusState. The inclusion of TrustedHeight and * TrustedValidators allows this update to process correctly, so long as the * ConsensusState for the TrustedHeight exists, this removes race conditions * among relayers The SignedHeader and ValidatorSet are the new untrusted update * fields for the client. The TrustedHeight is the height of a stored * ConsensusState on the client that will be used to verify the new untrusted * header. The Trusted ConsensusState must be within the unbonding period of * current time in order to correctly verify, and the TrustedValidators must * hash to TrustedConsensusState.NextValidatorsHash since that is the last * trusted validator set at the TrustedHeight. */ export interface Header { signedHeader: SignedHeader | undefined; validatorSet: ValidatorSet | undefined; trustedHeight: Height | undefined; trustedValidators: ValidatorSet | undefined; } /** * Fraction defines the protobuf message type for tmmath.Fraction that only * supports positive values. */ export interface Fraction { numerator: Long; denominator: Long; } export declare const ClientState: { encode(message: ClientState, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): ClientState; fromJSON(object: any): ClientState; toJSON(message: ClientState): unknown; create(base?: DeepPartial): ClientState; fromPartial(object: DeepPartial): ClientState; }; export declare const ConsensusState: { encode(message: ConsensusState, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): ConsensusState; fromJSON(object: any): ConsensusState; toJSON(message: ConsensusState): unknown; create(base?: DeepPartial): ConsensusState; fromPartial(object: DeepPartial): ConsensusState; }; export declare const Misbehaviour: { encode(message: Misbehaviour, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): Misbehaviour; fromJSON(object: any): Misbehaviour; toJSON(message: Misbehaviour): unknown; create(base?: DeepPartial): Misbehaviour; fromPartial(object: DeepPartial): Misbehaviour; }; export declare const Header: { encode(message: Header, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): Header; fromJSON(object: any): Header; toJSON(message: Header): unknown; create(base?: DeepPartial
): Header; fromPartial(object: DeepPartial
): Header; }; export declare const Fraction: { encode(message: Fraction, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): Fraction; fromJSON(object: any): Fraction; toJSON(message: Fraction): unknown; create(base?: DeepPartial): Fraction; fromPartial(object: DeepPartial): Fraction; }; type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; export type DeepPartial = T extends Builtin ? T : T extends Long ? string | number | Long : T extends globalThis.Array ? globalThis.Array> : T extends ReadonlyArray ? ReadonlyArray> : T extends {} ? { [K in keyof T]?: DeepPartial; } : Partial; export {};