///
///
import { BinaryWriter, ECPoint, PrivateKey, UInt256, UInt256Hex } from '@neo-one/client-common';
import { Equals, EquatableKey } from '../Equatable';
import { DeserializeWireBaseOptions, DeserializeWireOptions, SerializableWire } from '../Serializable';
import { VerifyScript } from '../vm';
import { Witness } from '../Witness';
import { UnsignedConsensusPayload, UnsignedConsensusPayloadAdd } from './UnsignedConsensusPayload';
export interface ConsensusPayloadAdd extends UnsignedConsensusPayloadAdd {
readonly script: Witness;
}
export interface ConsensusPayloadGetScriptHashesForVerifyingOptions {
readonly getValidators: () => Promise;
readonly currentBlockHash: UInt256;
}
export interface ConsensusPayloadVerifyOptions extends ConsensusPayloadGetScriptHashesForVerifyingOptions {
readonly currentIndex: number;
readonly verifyScript: VerifyScript;
}
export declare class ConsensusPayload extends UnsignedConsensusPayload implements SerializableWire, EquatableKey {
static sign(payload: UnsignedConsensusPayload, key: PrivateKey): ConsensusPayload;
static deserializeWireBase(options: DeserializeWireBaseOptions): ConsensusPayload;
static deserializeWire(options: DeserializeWireOptions): ConsensusPayload;
readonly script: Witness;
readonly toKeyString: () => string;
readonly equals: Equals;
readonly getScriptHashesForVerifying: (input: ConsensusPayloadGetScriptHashesForVerifyingOptions) => Promise>;
private readonly hashInternal;
private readonly hashHexInternal;
private readonly messageInternal;
constructor({ version, previousHash, blockIndex, validatorIndex, timestamp, consensusMessage, script, }: ConsensusPayloadAdd);
readonly hash: UInt256;
readonly hashHex: UInt256Hex;
readonly message: Buffer;
serializeUnsigned(): Buffer;
serializeWireBase(writer: BinaryWriter): void;
verify({ verifyScript, getValidators, currentBlockHash, currentIndex, }: ConsensusPayloadVerifyOptions): Promise;
}