import { BasicBlockBody } from './basic';
import { ValidationBlockBody } from './validation';
/**
 * All of the block body types.
 */
export declare enum BlockBodyType {
    Basic = 0,
    Validation = 1
}
export declare abstract class BlockBody {
    readonly type: BlockBodyType;
    /**
     * @param type The type of BlockBody.
     */
    constructor(type: BlockBodyType);
    /**
     * Checks whether the block body is a `BasicBlockBody`.
     * @returns true if it is, otherwise false
     */
    isBasic(): boolean;
    /**
     * Gets the block body as an actual `BasicBlockBody`.
     * NOTE: Will throw an error if the block is not a `BasicBlockBody`.
     * @returns The BasicBlockBody
     */
    asBasic(): BasicBlockBody;
    /**
     * Checks whether the block body is a `ValidationBlockBody`.
     * @returns true if it is, otherwise false
     */
    isValidation(): boolean;
    /**
     * Gets the block body as an actual `ValidationBlockBody`.
     * NOTE: Will throw an error if the block is not a `ValidationBlockBody`.
     * @returns The ValidationBlockBody
     */
    asValidation(): ValidationBlockBody;
}
