UNPKG

3.35 kBTypeScriptView Raw
1import { Nullable, Reference, ReferenceSymbol } from "@glimmer/interfaces";
2declare const REFERENCE: ReferenceSymbol;
3//////////
4interface ReferenceEnvironment {
5 getProp(obj: unknown, path: string): unknown;
6 setProp(obj: unknown, path: string, value: unknown): unknown;
7}
8declare function createPrimitiveRef<T extends string | symbol | number | boolean | null | undefined>(value: T): Reference<T>;
9declare const UNDEFINED_REFERENCE: Reference<any>;
10declare const NULL_REFERENCE: Reference<any>;
11declare const TRUE_REFERENCE: Reference<true>;
12declare const FALSE_REFERENCE: Reference<false>;
13declare function createConstRef<T>(value: T, debugLabel: false | string): Reference<T>;
14declare function createUnboundRef<T>(value: T, debugLabel: false | string): Reference<T>;
15declare function createComputeRef<T = unknown>(compute: () => T, update?: Nullable<(value: T) => void>, debugLabel?: false | string): Reference<T>;
16declare function createReadOnlyRef(ref: Reference): Reference;
17declare function isInvokableRef(ref: Reference): boolean;
18declare function createInvokableRef(inner: Reference): Reference;
19declare function isConstRef(_ref: Reference): boolean;
20declare function isUpdatableRef(_ref: Reference): boolean;
21declare function valueForRef<T>(_ref: Reference<T>): T;
22declare function updateRef(_ref: Reference, value: unknown): void;
23declare function childRefFor(_parentRef: Reference, path: string): Reference;
24declare function childRefFromParts(root: Reference, parts: string[]): Reference;
25declare let createDebugAliasRef: undefined | ((debugLabel: string, inner: Reference) => Reference);
26interface IterationItem<T, U> {
27 key: unknown;
28 value: T;
29 memo: U;
30}
31interface AbstractIterator<T, U, V extends IterationItem<T, U>> {
32 isEmpty(): boolean;
33 next(): Nullable<V>;
34}
35type OpaqueIterationItem = IterationItem<unknown, unknown>;
36type OpaqueIterator = AbstractIterator<unknown, unknown, OpaqueIterationItem>;
37interface IteratorDelegate {
38 isEmpty(): boolean;
39 next(): {
40 value: unknown;
41 memo: unknown;
42 } | null;
43}
44type KeyFor = (item: unknown, index: unknown) => unknown;
45declare function createIteratorRef(listRef: Reference, key: string): Reference<ArrayIterator | IteratorWrapper>;
46declare function createIteratorItemRef(_value: unknown): Reference<unknown>;
47declare class IteratorWrapper implements OpaqueIterator {
48 private inner;
49 private keyFor;
50 constructor(inner: IteratorDelegate, keyFor: KeyFor);
51 isEmpty(): boolean;
52 next(): OpaqueIterationItem;
53}
54declare class ArrayIterator implements OpaqueIterator {
55 private iterator;
56 private keyFor;
57 private current;
58 private pos;
59 constructor(iterator: unknown[] | readonly unknown[], keyFor: KeyFor);
60 isEmpty(): boolean;
61 next(): Nullable<IterationItem<unknown, number>>;
62}
63export { AbstractIterator, createIteratorItemRef, createIteratorRef, IterationItem, IteratorDelegate, OpaqueIterationItem, OpaqueIterator, childRefFor, childRefFromParts, createComputeRef, createConstRef, createDebugAliasRef, createInvokableRef, createPrimitiveRef, createReadOnlyRef, createUnboundRef, FALSE_REFERENCE, isConstRef, isInvokableRef, isUpdatableRef, NULL_REFERENCE, REFERENCE, Reference, ReferenceEnvironment, TRUE_REFERENCE, UNDEFINED_REFERENCE, updateRef, valueForRef };
64//# sourceMappingURL=index.d.ts.map
\No newline at end of file