import { BaseHandler, IFormError, ILogger } from "@ic-wallet-middleware/common";
import { SubAccountBalanceHandler } from "../../internalHandlers/icrcCacheDataHandlers/assets/subAccountBalanceHandler/subAccountBalanceHandler";
import { AssetSubAccountView, SubAccountId, TokenMarketInfo } from "../../types";
import { InternalHandlerForm } from "../../types/forms/internalHandlerForm";
export declare abstract class BaseInternalHandler<TForm extends InternalHandlerForm, TResult> extends BaseHandler<TForm, TResult> {
    protected subAccountBalanceHandler: SubAccountBalanceHandler;
    constructor(logger: ILogger, subAccountBalanceHandler: SubAccountBalanceHandler);
    abstract validate(form: TForm): Promise<void>;
    abstract process(form: TForm): Promise<TResult>;
    protected getSubAccountById(subAccountId: SubAccountId, form: TForm, assetMarket: TokenMarketInfo | undefined, decimal: number): Promise<AssetSubAccountView>;
    parseError<T>(errors: IFormError[]): void;
}
