/*!
 * Copyright 2019 acrazing <joking.young@gmail.com>. All rights reserved.
 * @since 2019-07-17 18:45:32
 */
import { DependencyTree, ParseOptions } from './types';
export type SkippedImport = readonly [string, string];
export declare const defaultOptions: ParseOptions;
export declare function normalizeOptions(options: Partial<ParseOptions>): ParseOptions;
export declare function appendSuffix(request: string, extensions: string[]): Promise<string | null>;
export type Resolver = (context: string, request: string, extensions: string[]) => Promise<string | null>;
export declare const simpleResolver: Resolver;
export declare function shortenTree(context: string, tree: DependencyTree): DependencyTree;
export declare function getPackageName(context: string, id: string): string | null;
export declare function groupDependencyTreeByPackage(tree: DependencyTree, context: string): DependencyTree;
export declare function groupEntriesByPackage(entries: string[], context: string): string[];
export declare function parseCircular(tree: DependencyTree, skipDynamicImports?: boolean, skipImports?: readonly SkippedImport[]): string[][];
export declare function parseDependents(tree: DependencyTree): Record<string, string[]>;
export declare function parseWarnings(tree: DependencyTree, dependents?: Record<string, string[]>): string[];
export declare function prettyTree(tree: DependencyTree, entries: string[], prefix?: string): string;
export declare function prettyCircular(circulars: string[][], prefix?: string): string;
export declare function prettyWarning(warnings: string[], prefix?: string): string;
export declare function isEmpty(v: unknown): boolean;
