/// <reference types="node" />
import { JSONObject } from '../../types';
export interface LegacyBlockBracket {
    startHeight: number;
    snapshotHeight: number;
    snapshotBlockID: string;
}
export interface LegacyBlockHeader {
    [key: string]: unknown;
    version: number;
    height: number;
    previousBlockID: Buffer;
    transactionRoot: Buffer;
}
export type LegacyBlockHeaderJSON = JSONObject<LegacyBlockHeader>;
export interface RawLegacyBlock {
    header: Buffer;
    payload: Buffer[];
}
export interface LegacyBlock {
    header: LegacyBlockHeader;
    payload: Buffer[];
}
export interface LegacyBlockHeaderWithID extends LegacyBlockHeader {
    id: Buffer;
}
export interface LegacyBlockWithID extends LegacyBlock {
    header: LegacyBlockHeaderWithID;
    payload: Buffer[];
}
export type LegacyBlockJSON = JSONObject<LegacyBlock>;
export interface LegacyTransaction {
    moduleID: number;
    assetID: number;
    nonce: bigint;
    fee: bigint;
    senderPublicKey: Buffer;
    asset: Buffer;
    signatures: Buffer[];
}
export interface LegacyTransactionWithID extends LegacyTransaction {
    id: Buffer;
}
export type LegacyTransactionJSON = JSONObject<LegacyTransactionWithID>;
export interface LegacyChainBracketInfo {
    startHeight: number;
    snapshotBlockHeight: number;
    lastBlockHeight: number;
}
export interface LegacyChainBracketInfoWithSnapshotBlockID extends LegacyChainBracketInfo {
    snapshotBlockID: string;
}
export interface Peer {
    readonly peerId: string;
    readonly options: {
        readonly legacy: string[];
    };
}
export interface RPCLegacyBlocksByIdData {
    readonly blockID: Buffer;
    readonly snapshotBlockID: Buffer;
}
