import type { REnvironmentInformation } from './environment';
import type { IdentifierDefinition, InGraphIdentifierDefinition } from './identifier';
/**
 * assumes: existing is not undefined, the overwrite has indices
 */
export declare function mergeDefinitions(existing: readonly IdentifierDefinition[], definition: InGraphIdentifierDefinition): InGraphIdentifierDefinition[];
/**
 * Insert the given `definition` --- defined within the given scope --- into the passed along `environments` will take care of propagation.
 * Does not modify the passed along `environments` in-place! It returns the new reference.
 */
export declare function define(definition: IdentifierDefinition, superAssign: boolean | undefined, environment: REnvironmentInformation): REnvironmentInformation;
