ember-source
Version:
A JavaScript framework for creating ambitious web applications
31 lines (26 loc) • 952 B
TypeScript
declare module '@glimmer/interfaces/lib/references' {
import type { Nullable } from "@glimmer/interfaces/lib/core.js";
export type ConstantReference = 0;
export type ComputeReference = 1;
export type UnboundReference = 2;
export type InvokableReference = 3;
export interface ReferenceTypes {
readonly Constant: ConstantReference;
readonly Compute: ComputeReference;
readonly Unbound: UnboundReference;
readonly Invokable: InvokableReference;
}
export type ReferenceType =
| ConstantReference
| ComputeReference
| UnboundReference
| InvokableReference;
const REFERENCE: unique symbol;
export type ReferenceSymbol = typeof REFERENCE;
export interface Reference<T = unknown> {
[REFERENCE]: ReferenceType;
debugLabel?: string | false | undefined;
compute: Nullable<() => T>;
children: null | Map<string | Reference, Reference>;
}
}