import { IErrorHandler } from "./IErrorHandler.cjs";
import { INodeLocation } from "./INodeLocation.cjs";
/**
 * Provides features for performing `nameof` transformations.
 */
export declare class TransformerFeatures<TNode, TContext = Record<string, never>> {
    /**
     * A component for reporting errors.
     */
    private errorHandler;
    /**
     * Initializes a new instance of the {@linkcode TransformerFeatures TransformerFeatures<T>} class.
     *
     * @param errorHandler
     * A component for reporting errors.
     */
    constructor(errorHandler?: IErrorHandler<TNode, TContext>);
    /**
     * Gets a component for reporting errors.
     */
    protected get ErrorHandler(): IErrorHandler<TNode, TContext> | undefined;
    /**
     * Reports the specified {@linkcode error}.
     *
     * @param location
     * The location of the specified {@linkcode node}.
     *
     * @param item
     * The item the specified {@linkcode error} is related to.
     *
     * @param context
     * The context of the operation.
     *
     * @param error
     * The error to report.
     */
    ReportError(location: INodeLocation, item: TNode, context: TContext, error: Error): void;
    /**
     * Initializes a new error handler.
     *
     * @returns
     * The newly created error handler.
     */
    protected InitializeErrorHandler(): IErrorHandler<TNode, TContext>;
}
