import { IPlugin, IRepoPlugin, PluginType, IStorePlugin, IIndexerPlugin, IFinderPlugin, IRepoSupportPlugin } from "./Types"; import { Repo } from "./Repo"; export declare function assert(test: any, msg?: string): void; export declare function isNumberOrString(o: any): o is string | number; export declare function isArrayType(type: any): boolean; /** * Check the type of a plugin * * @param plugin * @param type * @returns {boolean} */ export declare function isPluginOfType(plugin: IPlugin, type: PluginType): boolean; export declare function isRepoPlugin(plugin: IPlugin): plugin is IRepoPlugin; export declare function isStorePlugin(plugin: IPlugin): plugin is IStorePlugin; export declare function isIndexerPlugin(plugin: IPlugin): plugin is IIndexerPlugin; export declare function isFinderPlugin(plugin: IPlugin): plugin is IFinderPlugin; export declare function PromiseMap(values: T[], mapper: (value: T) => any): Promise; export declare function PluginFilter

(plugins: IPlugin[], type: PluginType): P[]; export declare function isInstanceType(val: any, type: { new (): T; }): val is T; export declare function includesUnlessEmpty(arr: any[], val: any): boolean; export declare function repoAttachIfSupported(repo: Repo, plugin: IRepoSupportPlugin): Repo;