import { ExpressionValue } from "../../value/ExpressionValue.js";
import { ExprEvalResult } from "../ExprEvalResult.js";
import { ExprType } from "../../type/ExprType.js";
import { FunctionExpr } from "./FunctionExpr.js";
import { LocalizedText } from "../../documentation/Documentation.js";
export declare class FuncArg<T> {
    protected _required: boolean;
    protected _name: string;
    protected _defaultValue?: T;
    protected _displayLabel?: LocalizedText;
    protected _documentation?: LocalizedText;
    constructor(required: boolean, name: string, defaultValue?: T);
    getType(): ExprType;
    withDocumentation(displayLabel: LocalizedText, documentation: LocalizedText): this;
    transformValue(callingExpr: FunctionExpr, invocationValue: ExprEvalResult<ExpressionValue>): ExprEvalResult<ExpressionValue>;
    get required(): boolean;
    get name(): string;
    get defaultValue(): T | undefined;
    get displayLabel(): LocalizedText | undefined;
    get documentation(): LocalizedText | undefined;
    hasDefaultValue(): boolean;
}
