declare namespace getSideChannel { type Key = unknown; type ListNode = { key: Key; next: ListNode; value: T; }; type RootNode = { key: object; next: null | ListNode; }; function listGetNode(list: RootNode, key: ListNode['key']): ListNode | void; function listGet(objects: RootNode, key: ListNode['key']): T | void; function listSet(objects: RootNode, key: ListNode['key'], value: T): void; function listHas(objects: RootNode, key: ListNode['key']): boolean; type Channel = { assert: (key: Key) => void; has: (key: Key) => boolean; get: (key: Key) => T; set: (key: Key, value: T) => void; } } declare function getSideChannel(): getSideChannel.Channel; export = getSideChannel;