import { Params, ParamsAmino, ValidatorSigningInfo, ValidatorSigningInfoAmino } from "./slashing";
import { BinaryReader, BinaryWriter } from "../../../binary";
import { DeepPartial } from "../../../helpers";
/**
 * GenesisState defines the slashing module's genesis state.
 * @name GenesisState
 * @package cosmos.slashing.v1beta1
 * @see proto type: cosmos.slashing.v1beta1.GenesisState
 */
export interface GenesisState {
    /**
     * params defines all the parameters of the module.
     */
    params: Params;
    /**
     * signing_infos represents a map between validator addresses and their
     * signing infos.
     */
    signingInfos: SigningInfo[];
    /**
     * missed_blocks represents a map between validator addresses and their
     * missed blocks.
     */
    missedBlocks: ValidatorMissedBlocks[];
}
export interface GenesisStateProtoMsg {
    typeUrl: "/cosmos.slashing.v1beta1.GenesisState";
    value: Uint8Array;
}
/**
 * GenesisState defines the slashing module's genesis state.
 * @name GenesisStateAmino
 * @package cosmos.slashing.v1beta1
 * @see proto type: cosmos.slashing.v1beta1.GenesisState
 */
export interface GenesisStateAmino {
    /**
     * params defines all the parameters of the module.
     */
    params: ParamsAmino;
    /**
     * signing_infos represents a map between validator addresses and their
     * signing infos.
     */
    signing_infos: SigningInfoAmino[];
    /**
     * missed_blocks represents a map between validator addresses and their
     * missed blocks.
     */
    missed_blocks: ValidatorMissedBlocksAmino[];
}
export interface GenesisStateAminoMsg {
    type: "cosmos-sdk/GenesisState";
    value: GenesisStateAmino;
}
/**
 * SigningInfo stores validator signing info of corresponding address.
 * @name SigningInfo
 * @package cosmos.slashing.v1beta1
 * @see proto type: cosmos.slashing.v1beta1.SigningInfo
 */
export interface SigningInfo {
    /**
     * address is the validator address.
     */
    address: string;
    /**
     * validator_signing_info represents the signing info of this validator.
     */
    validatorSigningInfo: ValidatorSigningInfo;
}
export interface SigningInfoProtoMsg {
    typeUrl: "/cosmos.slashing.v1beta1.SigningInfo";
    value: Uint8Array;
}
/**
 * SigningInfo stores validator signing info of corresponding address.
 * @name SigningInfoAmino
 * @package cosmos.slashing.v1beta1
 * @see proto type: cosmos.slashing.v1beta1.SigningInfo
 */
export interface SigningInfoAmino {
    /**
     * address is the validator address.
     */
    address: string;
    /**
     * validator_signing_info represents the signing info of this validator.
     */
    validator_signing_info: ValidatorSigningInfoAmino;
}
export interface SigningInfoAminoMsg {
    type: "cosmos-sdk/SigningInfo";
    value: SigningInfoAmino;
}
/**
 * ValidatorMissedBlocks contains array of missed blocks of corresponding
 * address.
 * @name ValidatorMissedBlocks
 * @package cosmos.slashing.v1beta1
 * @see proto type: cosmos.slashing.v1beta1.ValidatorMissedBlocks
 */
export interface ValidatorMissedBlocks {
    /**
     * address is the validator address.
     */
    address: string;
    /**
     * missed_blocks is an array of missed blocks by the validator.
     */
    missedBlocks: MissedBlock[];
}
export interface ValidatorMissedBlocksProtoMsg {
    typeUrl: "/cosmos.slashing.v1beta1.ValidatorMissedBlocks";
    value: Uint8Array;
}
/**
 * ValidatorMissedBlocks contains array of missed blocks of corresponding
 * address.
 * @name ValidatorMissedBlocksAmino
 * @package cosmos.slashing.v1beta1
 * @see proto type: cosmos.slashing.v1beta1.ValidatorMissedBlocks
 */
export interface ValidatorMissedBlocksAmino {
    /**
     * address is the validator address.
     */
    address: string;
    /**
     * missed_blocks is an array of missed blocks by the validator.
     */
    missed_blocks: MissedBlockAmino[];
}
export interface ValidatorMissedBlocksAminoMsg {
    type: "cosmos-sdk/ValidatorMissedBlocks";
    value: ValidatorMissedBlocksAmino;
}
/**
 * MissedBlock contains height and missed status as boolean.
 * @name MissedBlock
 * @package cosmos.slashing.v1beta1
 * @see proto type: cosmos.slashing.v1beta1.MissedBlock
 */
export interface MissedBlock {
    /**
     * index is the height at which the block was missed.
     */
    index: bigint;
    /**
     * missed is the missed status.
     */
    missed: boolean;
}
export interface MissedBlockProtoMsg {
    typeUrl: "/cosmos.slashing.v1beta1.MissedBlock";
    value: Uint8Array;
}
/**
 * MissedBlock contains height and missed status as boolean.
 * @name MissedBlockAmino
 * @package cosmos.slashing.v1beta1
 * @see proto type: cosmos.slashing.v1beta1.MissedBlock
 */
export interface MissedBlockAmino {
    /**
     * index is the height at which the block was missed.
     */
    index: string;
    /**
     * missed is the missed status.
     */
    missed: boolean;
}
export interface MissedBlockAminoMsg {
    type: "cosmos-sdk/MissedBlock";
    value: MissedBlockAmino;
}
/**
 * GenesisState defines the slashing module's genesis state.
 * @name GenesisState
 * @package cosmos.slashing.v1beta1
 * @see proto type: cosmos.slashing.v1beta1.GenesisState
 */
export declare const GenesisState: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is GenesisState;
    isAmino(o: any): o is GenesisStateAmino;
    encode(message: GenesisState, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): GenesisState;
    fromPartial(object: DeepPartial<GenesisState>): GenesisState;
    fromAmino(object: GenesisStateAmino): GenesisState;
    toAmino(message: GenesisState): GenesisStateAmino;
    fromAminoMsg(object: GenesisStateAminoMsg): GenesisState;
    toAminoMsg(message: GenesisState): GenesisStateAminoMsg;
    fromProtoMsg(message: GenesisStateProtoMsg): GenesisState;
    toProto(message: GenesisState): Uint8Array;
    toProtoMsg(message: GenesisState): GenesisStateProtoMsg;
    registerTypeUrl(): void;
};
/**
 * SigningInfo stores validator signing info of corresponding address.
 * @name SigningInfo
 * @package cosmos.slashing.v1beta1
 * @see proto type: cosmos.slashing.v1beta1.SigningInfo
 */
export declare const SigningInfo: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is SigningInfo;
    isAmino(o: any): o is SigningInfoAmino;
    encode(message: SigningInfo, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): SigningInfo;
    fromPartial(object: DeepPartial<SigningInfo>): SigningInfo;
    fromAmino(object: SigningInfoAmino): SigningInfo;
    toAmino(message: SigningInfo): SigningInfoAmino;
    fromAminoMsg(object: SigningInfoAminoMsg): SigningInfo;
    toAminoMsg(message: SigningInfo): SigningInfoAminoMsg;
    fromProtoMsg(message: SigningInfoProtoMsg): SigningInfo;
    toProto(message: SigningInfo): Uint8Array;
    toProtoMsg(message: SigningInfo): SigningInfoProtoMsg;
    registerTypeUrl(): void;
};
/**
 * ValidatorMissedBlocks contains array of missed blocks of corresponding
 * address.
 * @name ValidatorMissedBlocks
 * @package cosmos.slashing.v1beta1
 * @see proto type: cosmos.slashing.v1beta1.ValidatorMissedBlocks
 */
export declare const ValidatorMissedBlocks: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is ValidatorMissedBlocks;
    isAmino(o: any): o is ValidatorMissedBlocksAmino;
    encode(message: ValidatorMissedBlocks, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): ValidatorMissedBlocks;
    fromPartial(object: DeepPartial<ValidatorMissedBlocks>): ValidatorMissedBlocks;
    fromAmino(object: ValidatorMissedBlocksAmino): ValidatorMissedBlocks;
    toAmino(message: ValidatorMissedBlocks): ValidatorMissedBlocksAmino;
    fromAminoMsg(object: ValidatorMissedBlocksAminoMsg): ValidatorMissedBlocks;
    toAminoMsg(message: ValidatorMissedBlocks): ValidatorMissedBlocksAminoMsg;
    fromProtoMsg(message: ValidatorMissedBlocksProtoMsg): ValidatorMissedBlocks;
    toProto(message: ValidatorMissedBlocks): Uint8Array;
    toProtoMsg(message: ValidatorMissedBlocks): ValidatorMissedBlocksProtoMsg;
    registerTypeUrl(): void;
};
/**
 * MissedBlock contains height and missed status as boolean.
 * @name MissedBlock
 * @package cosmos.slashing.v1beta1
 * @see proto type: cosmos.slashing.v1beta1.MissedBlock
 */
export declare const MissedBlock: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is MissedBlock;
    isAmino(o: any): o is MissedBlockAmino;
    encode(message: MissedBlock, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MissedBlock;
    fromPartial(object: DeepPartial<MissedBlock>): MissedBlock;
    fromAmino(object: MissedBlockAmino): MissedBlock;
    toAmino(message: MissedBlock): MissedBlockAmino;
    fromAminoMsg(object: MissedBlockAminoMsg): MissedBlock;
    toAminoMsg(message: MissedBlock): MissedBlockAminoMsg;
    fromProtoMsg(message: MissedBlockProtoMsg): MissedBlock;
    toProto(message: MissedBlock): Uint8Array;
    toProtoMsg(message: MissedBlock): MissedBlockProtoMsg;
    registerTypeUrl(): void;
};
