import { Nullable, Reference, ReferenceSymbol } from "@glimmer/interfaces"; declare const REFERENCE: ReferenceSymbol; ////////// interface ReferenceEnvironment { getProp(obj: unknown, path: string): unknown; setProp(obj: unknown, path: string, value: unknown): unknown; } declare function createPrimitiveRef(value: T): Reference; declare const UNDEFINED_REFERENCE: Reference; declare const NULL_REFERENCE: Reference; declare const TRUE_REFERENCE: Reference; declare const FALSE_REFERENCE: Reference; declare function createConstRef(value: T, debugLabel: false | string): Reference; declare function createUnboundRef(value: T, debugLabel: false | string): Reference; declare function createComputeRef(compute: () => T, update?: Nullable<(value: T) => void>, debugLabel?: false | string): Reference; declare function createReadOnlyRef(ref: Reference): Reference; declare function isInvokableRef(ref: Reference): boolean; declare function createInvokableRef(inner: Reference): Reference; declare function isConstRef(_ref: Reference): boolean; declare function isUpdatableRef(_ref: Reference): boolean; declare function valueForRef(_ref: Reference): T; declare function updateRef(_ref: Reference, value: unknown): void; declare function childRefFor(_parentRef: Reference, path: string): Reference; declare function childRefFromParts(root: Reference, parts: string[]): Reference; declare let createDebugAliasRef: undefined | ((debugLabel: string, inner: Reference) => Reference); interface IterationItem { key: unknown; value: T; memo: U; } interface AbstractIterator> { isEmpty(): boolean; next(): Nullable; } type OpaqueIterationItem = IterationItem; type OpaqueIterator = AbstractIterator; interface IteratorDelegate { isEmpty(): boolean; next(): { value: unknown; memo: unknown; } | null; } type KeyFor = (item: unknown, index: unknown) => unknown; declare function createIteratorRef(listRef: Reference, key: string): Reference; declare function createIteratorItemRef(_value: unknown): Reference; declare class IteratorWrapper implements OpaqueIterator { private inner; private keyFor; constructor(inner: IteratorDelegate, keyFor: KeyFor); isEmpty(): boolean; next(): OpaqueIterationItem; } declare class ArrayIterator implements OpaqueIterator { private iterator; private keyFor; private current; private pos; constructor(iterator: unknown[] | readonly unknown[], keyFor: KeyFor); isEmpty(): boolean; next(): Nullable>; } export { 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 }; //# sourceMappingURL=index.d.ts.map