declare module '@glimmer/runtime/lib/scope' { import type { Dict, DynamicScope, Nullable, Owner, Scope, ScopeBlock, ScopeSlot } from "@glimmer/interfaces"; import type { Reference } from "@glimmer/reference"; export class DynamicScopeImpl implements DynamicScope { private bucket; constructor(bucket?: Dict); get(key: string): Reference; set(key: string, reference: Reference): Reference; child(): DynamicScopeImpl; } export function isScopeReference(s: ScopeSlot): s is Reference; export interface ScopeOptions { /** @default {UNDEFINED_REFERENCE} */ self: Reference; /** @default {0} */ size?: number | undefined; } export class ScopeImpl implements Scope { static root(owner: Owner, { self, size }: ScopeOptions): Scope; static sized(owner: Owner, size?: number): Scope; readonly owner: Owner; private slots; private callerScope; constructor(owner: Owner, slots: Array, callerScope: Nullable); init({ self }: { self: Reference; }): this; /** * @debug */ snapshot(): ScopeSlot[]; getSelf(): Reference; getSymbol(symbol: number): Reference; getBlock(symbol: number): Nullable; bind(symbol: number, value: ScopeSlot): void; bindSelf(self: Reference): void; bindSymbol(symbol: number, value: Reference): void; bindBlock(symbol: number, value: Nullable): void; bindCallerScope(scope: Nullable): void; getCallerScope(): Nullable; child(): Scope; private get; private set; } }