import { AdapterError } from "./AdapterError.cjs";
import { NameofCall } from "../Serialization/NameofCall.cjs";
import { IAdapter } from "../Transformation/IAdapter.cjs";
/**
 * Represents an error which is related to a {@linkcode NameofCall}.
 */
export declare abstract class NameofCallError<TInput, TNode, TContext> extends AdapterError<TInput, TNode, TContext> {
    /**
     * The function call related to the error.
     */
    private call;
    /**
     * Initializes a new instance of the {@linkcode NameofCallError}.
     *
     * @param adapter
     * The adapter which caused the error.
     *
     * @param call
     * The function call related to the error.
     *
     * @param context
     * The context of the operation.
     */
    constructor(adapter: IAdapter<TInput, TNode, TContext>, call: NameofCall<TNode>, context: TContext);
    /**
     * Gets the function call related to the error.
     */
    protected get Call(): NameofCall<TNode>;
    /**
     * Gets the full name of the function which has been called.
     */
    protected get FunctionName(): string;
    /**
     * Gets the arguments of the function call.
     */
    protected get Arguments(): readonly TNode[];
    /**
     * Gets the type arguments of the function call.
     */
    protected get TypeArguments(): readonly TNode[];
    /**
     * Gets a text indicating the number of arguments.
     */
    protected get ArgumentCountText(): string;
    /**
     * Gets a text indicating the number of type arguments.
     */
    protected get TypeArgumentCountText(): string;
    /**
     * Gets the proper plural suffix for the specified {@linkcode amount} of entities.
     *
     * @param amount
     * The number of entities to get the plural suffix for.
     *
     * @returns
     * The proper suffix for the specified {@linkcode amount}.
     */
    protected GetPluralSuffix(amount: number): string;
}
