import { TSESTree } from '@typescript-eslint/types'; import * as ts from 'typescript'; export type JupyterPluginKind = 'frontend' | 'service-manager'; /** * Gets plugin kind from a variable declaration type annotation. * Accepts an optional TS checker and node mapper to resolve import aliases * (e.g. `import { JupyterFrontEndPlugin as JFEP } from '@jupyterlab/application'`). */ export declare function getJupyterPluginKind(node: TSESTree.VariableDeclarator, checker?: ts.TypeChecker | null, getTSNode?: ((n: TSESTree.Node) => ts.Node | undefined) | null): JupyterPluginKind | null; /** * Extracts properties from an object expression */ export declare function getObjectProperties(obj: TSESTree.ObjectExpression): Map; /** * Gets the plugin ID from an object expression */ export declare function getPluginId(obj: TSESTree.ObjectExpression): string | null; export interface TokenEntry { name: string; node: TSESTree.Node; } /** * Extracts token names and nodes from an array, including member expressions like JupyterFrontEnd.IPaths */ export declare function extractArrayTokens(arrayExpr: TSESTree.ArrayExpression): TokenEntry[]; export declare function isNullableAnnotation(param: TSESTree.Identifier): boolean; export declare function extractParameterType(param: TSESTree.Identifier): string | null;