import type { Rule, Scope } from 'eslint'; import type estree from 'estree'; type LiteralValue = string; declare class AssignedValues extends Set { type: "AssignedValues"; } interface UnknownValue { type: 'UnknownValue'; } export type Values = AssignedValues | UnknownValue; export declare function reachingDefinitions(reachingDefinitionsMap: Map): void; export declare class ReachingDefinitions { constructor(segment: Rule.CodePathSegment); segment: Rule.CodePathSegment; in: Map; out: Map; /** * collects references in order they are evaluated, set in JS maintains insertion order */ references: Set; add(ref: Scope.Reference): void; propagate(reachingDefinitionsMap: Map): boolean; updateProgramState(ref: Scope.Reference, programState: Map): void; join(previousOut: Map): void; } export declare function resolveAssignedValues(lhsVariable: Scope.Variable, writeExpr: estree.Node | null, assignedValuesMap: Map, scope: Scope.Scope): Values; export declare function getVariableFromIdentifier(identifier: estree.Identifier, scope: Scope.Scope): Scope.Variable | undefined; export {};