export declare abstract class BlockTipBase {
    protected privateData: any;
    constructor(data: any);
    /**
     * Exposing the private data for the derived classes (dev only/python like privatization)
     */
    get _data(): any;
    protected abstract get data(): any;
    /**
     * Block number sometimes refers to as block height or ledger height (number of block in blockchain)
     */
    abstract get number(): number;
    /**
     * Block hash directly from underlying node
     */
    abstract get blockHash(): string;
    /**
     * Flare standardized block hash (hex encoded string of length 64 (32 bytes) without 0x prefix)
     */
    abstract get stdBlockHash(): string;
    /**
     * Only return something on Tips
     */
    get chainTipStatus(): string;
}
export declare abstract class BlockHeaderBase extends BlockTipBase {
    /**
     * Previous block hash directly from underlying node
     */
    abstract get previousBlockHash(): string;
    /**
     * Flare standardized previous block hash (hex encoded string of length 64 (32 bytes) without 0x prefix)
     */
    abstract get stdPreviousBlockHash(): string;
    /**
     * block timestamp as unix time (elapsed seconds since 1.1.1970)
     */
    abstract get unixTimestamp(): number;
    /**
     * Number of transactions in block
     */
    abstract get transactionCount(): number;
}
export declare abstract class BlockBase extends BlockHeaderBase {
    /**
     * Array of transaction ids of all transactions in block
     */
    abstract get transactionIds(): string[];
    /**
     * Array of flare standardized transaction ids in block (hex encoded string of length 64 (32 bytes) without 0x prefix)
     */
    abstract get stdTransactionIds(): string[];
    /**
     * Return if block is valid
     * Mainly for XRP
     */
    get isValid(): boolean;
}
export declare function blockConstructor<A extends BlockBase>(c: new () => A): A;
export declare function blockHeaderConstructor<A extends BlockHeaderBase>(c: new () => A): A;
export declare function blockTipConstructor<A extends BlockTipBase>(c: new () => A): A;
//# sourceMappingURL=BlockBase.d.ts.map