/** * @typedef {import("../utils/expression.js").ExpressionFunction & { * subscribe: (listener: () => void) => () => void, * invalidate: () => void, * identifier: () => string * }} ExprRefFunction */ /** * @param {any} x * @returns {x is import("../spec/parameter.js").ExprRef} */ export function isExprRef(x: any): x is import("../spec/parameter.js").ExprRef; /** * Removes ExprRef from the type and checks that the value is not an ExprRef. * This is designed to be used with `activateExprRefProps`. * * @param {T | import("../spec/parameter.js").ExprRef} x * @template T * @returns {T} */ export function withoutExprRef(x: T | import("../spec/parameter.js").ExprRef): T; /** * @param {import("../spec/parameter.js").Parameter} param * @returns {param is import("../spec/parameter.js").VariableParameter} */ export function isVariableParameter(param: import("../spec/parameter.js").Parameter): param is import("../spec/parameter.js").VariableParameter; /** * @param {import("../spec/parameter.js").Parameter} param * @returns {param is import("../spec/parameter.js").SelectionParameter} */ export function isSelectionParameter(param: import("../spec/parameter.js").Parameter): param is import("../spec/parameter.js").SelectionParameter; /** * Validates a parameter name. If the name is invalid, throws an error. * Otherwise, returns the name. * * @param {string} name * @returns {string} the name */ export function validateParameterName(name: string): string; /** * Computes the default value for a parameter specification. * * @param {import("../spec/parameter.js").Parameter} param * @param {{ createExpression: (expr: string) => ExprRefFunction }} [paramRuntime] * @param {ExprRefFunction} [exprFn] * @returns {any} */ export function getDefaultParamValue(param: import("../spec/parameter.js").Parameter, paramRuntime?: { createExpression: (expr: string) => ExprRefFunction; }, exprFn?: ExprRefFunction): any; /** * Takes a record of properties that may have ExprRefs as values. Converts the * ExprRefs to getters and setups a listener that is called when any of the * expressions (upstream parameters) change. * * @param {{ createExpression: (expr: string) => ExprRefFunction, watchExpression?: (expr: string, listener: () => void, options?: { scopeOwned?: boolean, registerDisposer?: (disposer: () => void) => void }) => ExprRefFunction, whenPropagated?: () => Promise }} paramRuntime * @param {T} props The properties object * @param {(props: ReadonlySet) => void} [listener] Listener to be called when any of the expressions change * @param {(disposer: () => void) => void} [registerDisposer] * @param {{ batchMode?: "microtask" | "whenPropagated" }} [options] * @returns T * @template {Record} T */ export function activateExprRefProps>(paramRuntime: { createExpression: (expr: string) => ExprRefFunction; watchExpression?: (expr: string, listener: () => void, options?: { scopeOwned?: boolean; registerDisposer?: (disposer: () => void) => void; }) => ExprRefFunction; whenPropagated?: () => Promise; }, props: T, listener?: (props: ReadonlySet) => void, registerDisposer?: (disposer: () => void) => void, options?: { batchMode?: "microtask" | "whenPropagated"; }): T; /** * Creates a function that always returns the same value. * * @param {any} value * @returns {ExprRefFunction} */ export function makeConstantExprRef(value: any): ExprRefFunction; export type ExprRefFunction = import("../utils/expression.js").ExpressionFunction & { subscribe: (listener: () => void) => () => void; invalidate: () => void; identifier: () => string; }; //# sourceMappingURL=paramUtils.d.ts.map