/// <reference types="steem-js-alpha" />
import * as steem from "steem";
import { WiseOperation } from "./WiseOperation";
import { ProtocolVersionHandler } from "./versions/ProtocolVersionHandler";
import { EffectuatedWiseOperation } from "./EffectuatedWiseOperation";
import { UnifiedSteemTransaction } from "../blockchain/UnifiedSteemTransaction";
export declare class Protocol {
    private registry;
    /**
     * Remember that the current handler should be the first one.
     * @param handlers - protocol version handlers ordered from the newest to the oldest
     */
    constructor(handlers: ProtocolVersionHandler[]);
    handleOrReject(transaction: UnifiedSteemTransaction): EffectuatedWiseOperation[] | undefined;
    serializeToBlockchain(op: WiseOperation): steem.OperationWithDescriptor[];
    /**
     * Validated if steem operation it is a valid wise
     * @param op - an steem operation in format: steem.OperationWithDescriptor object (if it is a pending operation block_num should equal Infinity)
     */
    validateOperation: (op: steem.OperationWithDescriptor) => boolean;
    /**
     * Validated if steem operation (object with blockchain data and timestamp) it is a valid wise
     * @param op - an steem operation object that implements SteemTransaction interface
     */ validateSteemTransaction: (so: UnifiedSteemTransaction) => boolean;
    getHandlers(): ProtocolVersionHandler[];
}
