import * as memoize from 'memoizee'; import { CompletionItem } from 'vscode-languageserver/node'; import { BaseProject } from '../base-project'; export declare const ADDON_CONFIG_KEY = "ember-language-server"; export declare function asyncFilter(arr: T[], predicate: (value: unknown) => Promise): Promise; export declare function normalizeRoutePath(name: string): string; export declare function hasEmberLanguageServerExtension(info: PackageInfo): boolean; export declare const podModulePrefixForRoot: typeof getPodModulePrefix & memoize.Memoized; export declare const mGetProjectAddonsInfo: typeof getProjectAddonsInfo & memoize.Memoized; declare type UnknownConfig = Record; declare type StringConfig = Record; export interface PackageInfo { keywords?: string[]; name?: string; 'ember-language-server'?: UnknownConfig; peerDependencies?: StringConfig; devDependencies?: StringConfig; dependencies?: StringConfig; 'ember-addon'?: { version?: number; paths?: string[]; before?: string | string[]; after?: string | string[]; 'app-js'?: string | Record; }; } export declare function setSyncFSSupport(value: boolean): void; export declare function getSyncFSSupport(): boolean; export declare function setRequireSupport(value: boolean): void; export declare function getRequireSupport(): boolean; export declare function safeWalkAsync(filePath: string | false, opts: any): Promise; export declare function getPodModulePrefix(root: string): string | null; export declare function resolvePackageRoot(root: string, addonName: string, packagesFolder?: string): Promise; /** * Returns true if file path starts with the given root path. * There are cases where the root path might be * 'foo/bar/biz' and 'foo/bar/biz-bar'. The startsWith/includes will always * return true for both these roots. Hence having a stricter check will help * @param rootPath root path * @param filePath file path * @returns boolean */ export declare function isRootStartingWithFilePath(rootPath: string, filePath: string): boolean; export declare function isFileBelongsToRoots(roots: string[], filePath: string): boolean; export declare function isELSAddonRoot(root: string): Promise; export declare function cached(_proto: unknown, prop: string, desc: PropertyDescriptor): { get(): any; }; export declare function getProjectInRepoAddonsRoots(root: string): Promise; export declare function getDepIfExists(pack: PackageInfo, depName: string): string | null; export declare function isGlimmerXProject(root: string): Promise; export declare function getProjectAddonsRoots(root: string, resolvedItems?: string[], packageFolderName?: string): Promise; export declare function asyncGetPackageJSON(file: string): Promise; export declare function asyncGetJSON(filePath: string): Promise; export declare function isEmberAddon(info: PackageInfo): boolean | undefined; export declare function addonVersion(info: PackageInfo): 1 | 2 | null; export declare function isTemplatePath(filePath: string): boolean; export declare function isScriptPath(filePath: string): boolean; export declare function normalizedPath(filePath: string): string; export declare function isStyleFile(filePath: string): boolean; export declare function isTestFile(filePath: string): boolean; export declare function hasAddonFolderInPath(name: string): boolean; export declare function getProjectAddonsInfo(root: string): Promise; export declare function listPodsComponents(project: BaseProject): Promise; export declare function builtinModifiers(): CompletionItem[]; export declare function hasNamespaceSupport(root: string): Promise; export declare function listComponents(project: BaseProject): Promise; export declare function findTestsForProject(project: BaseProject): Promise; export declare function findAppItemsForProject(project: BaseProject): Promise; export declare function findAddonItemsForProject(project: BaseProject): Promise; export declare function listModifiers(project: BaseProject): Promise; export declare function listModels(project: BaseProject): Promise; export declare function listServices(project: BaseProject): Promise; export declare function listHelpers(project: BaseProject): Promise; export declare function listTransforms(project: BaseProject): Promise; export declare function listRoutes(project: BaseProject): Promise; export {};