import * as t from '@rekajs/types'; import { Reka } from './reka'; type EnvironmentValue = string | number | boolean | Record | Array | t.Component; type Binding = { value: EnvironmentValue; readonly: boolean; }; type BindingKey = string | Symbol; export declare class Environment { readonly reka: Reka; readonly parent?: Environment | undefined; id: string; bindings: Map; constructor(reka: Reka, parent?: Environment | undefined); reassign(identifier: t.Identifier, value: any): undefined; set(name: BindingKey, binding: Binding): void; delete(name: BindingKey): void; getByName(name: BindingKey, external?: boolean, getInCurrentEnvironmentOnly?: boolean): any; getByIdentifier(identifier: t.Identifier): any; inherit(): Environment; clone(): Environment; } export {};