import { Scope, SourceCode, Rule } from 'eslint'; import * as ESTree from 'estree'; type LegacyContext = { getFilename: () => string, getPhysicalFilename: () => string, getSourceCode: () => SourceCode, getScope: never, getAncestors: never, getDeclaredVariables: never, }; type NewContext = { filename: string, sourceCode: SourceCode, getPhysicalFilename?: () => string, getScope: () => Scope.Scope, getAncestors: () => ESTree.Node[], getDeclaredVariables: (node: ESTree.Node) => Scope.Variable[], }; export type Context = LegacyContext | NewContext | Rule.RuleContext; declare function getAncestors(context: Context, node: ESTree.Node): ESTree.Node[]; declare function getDeclaredVariables(context: Context, node: ESTree.Node): Scope.Variable[]; declare function getFilename(context: Context): string; declare function getPhysicalFilename(context: Context): string; declare function getScope(context: Context, node: ESTree.Node): Scope.Scope; declare function getSourceCode(context: Context): SourceCode; export { getAncestors, getDeclaredVariables, getFilename, getPhysicalFilename, getScope, getSourceCode, };