import { Contracts, Providers } from "@arkecosystem/core-kernel";
import { Handlers } from "@arkecosystem/core-transactions";
import { Interfaces, Transactions, Utils } from "@arkecosystem/crypto";
import { INotarization } from "../interfaces";
export declare class NotarizationTransactionHandler extends Handlers.TransactionHandler {
    protected readonly transactionHistoryService: Contracts.Shared.TransactionHistoryService;
    private readonly blockHistoryService;
    protected readonly poolQuery: Contracts.TransactionPool.Query;
    protected readonly notarizationCache: Contracts.Kernel.CacheStore<INotarization["hash"], INotarization>;
    protected readonly configuration: Providers.PluginConfiguration;
    isActivated(): Promise<boolean>;
    getConstructor(): Transactions.TransactionConstructor;
    dependencies(): ReadonlyArray<Handlers.TransactionHandlerConstructor>;
    walletAttributes(): ReadonlyArray<string>;
    dynamicFee({ addonBytes, satoshiPerByte, transaction, height, }: Contracts.Shared.DynamicFeeContext): Utils.BigNumber;
    bootstrap(): Promise<void>;
    emitEvents(transaction: Interfaces.ITransaction, emitter: Contracts.Kernel.EventDispatcher): void;
    throwIfCannotBeApplied(transaction: Interfaces.ITransaction, wallet: Contracts.State.Wallet): Promise<void>;
    apply(transaction: Interfaces.ITransaction): Promise<void>;
    revert(transaction: Interfaces.ITransaction): Promise<void>;
    applyToRecipient(transaction: Interfaces.ITransaction): Promise<void>;
    revertForRecipient(transaction: Interfaces.ITransaction): Promise<void>;
    protected getDefaultCriteria(): {
        typeGroup: number | undefined;
        type: number | undefined;
    };
    private buildNotarization;
}
