ember-source
Version:
A JavaScript framework for creating ambitious web applications
37 lines • 1.73 kB
TypeScript
declare module '@glimmer/runtime/lib/curried-value' {
import type { CapturedArguments, CurriedComponent, CurriedHelper, CurriedModifier, CurriedType, Owner } from "@glimmer/interfaces";
import type { Reference } from "@glimmer/reference";
const TYPE: unique symbol;
const INNER: unique symbol;
const OWNER: unique symbol;
const ARGS: unique symbol;
const RESOLVED: unique symbol;
export function isCurriedValue(value: unknown): value is CurriedValue;
export function isCurriedType<T extends CurriedType>(value: unknown, type: T): value is CurriedValue<T>;
export class CurriedValue<T extends CurriedType = CurriedType> {
[TYPE]: T;
[INNER]: object | string | CurriedValue<T>;
[OWNER]: Owner;
[ARGS]: CapturedArguments | null;
[RESOLVED]: boolean;
/** @internal */
constructor(type: T, inner: object | string | CurriedValue<T>, owner: Owner, args: CapturedArguments | null, resolved?: boolean);
}
interface ResolvedCurriedValue<T> {
definition: T;
owner: Owner;
resolved: boolean;
positional: Reference[] | undefined;
named: Record<string, Reference>[] | undefined;
}
export function resolveCurriedValue(curriedValue: CurriedValue<CurriedComponent>): ResolvedCurriedValue<object | string>;
export function resolveCurriedValue(curriedValue: CurriedValue<CurriedHelper> | CurriedValue<CurriedModifier>): ResolvedCurriedValue<object>;
export function curry<T extends CurriedType>(
type: T,
spec: object | string | CurriedValue<T>,
owner: Owner,
args: CapturedArguments | null,
resolved?: boolean
): CurriedValue<T>;
export {};
}