import { FormResult } from "../forms/formResult";
import { IFormError } from "../forms/iFormError";
import { ILogger } from "../logger/logger";
export declare abstract class BaseHandler<TForm, TResult> {
    abstract validate(form: TForm): Promise<void>;
    abstract process(form: TForm): Promise<TResult>;
    protected logger: ILogger;
    constructor(logger: ILogger);
    handle(form: TForm): Promise<FormResult<TResult>>;
    processError(error: any): IFormError[];
    private processInternalError;
}
