import { ITarget } from '../config/PrivateConfig';
import { TsConfigAtPath } from './fileLookup';
import { INodeModuleLookup } from './nodeModuleLookup';
export declare enum ImportType {
    REQUIRE = 0,
    FROM = 1,
    RAW_IMPORT = 2,
    DYNAMIC = 3
}
export interface ITypescriptPathsConfig {
    baseURL: string;
    paths?: {
        [key: string]: Array<string>;
    };
}
export interface IResolverProps {
    buildTarget?: ITarget;
    target: string;
    isDev?: boolean;
    cache?: boolean;
    homeDir?: string;
    filePath?: string;
    packageMeta?: IPackageMeta;
    modules?: Array<string>;
    importType?: ImportType;
    javascriptFirst?: boolean;
    alias?: {
        [key: string]: string;
    };
    typescriptPaths?: ITypescriptPathsConfig;
}
export interface IPackageMeta {
    name: string;
    fusebox?: {
        system?: boolean;
        dev?: boolean;
        polyfill?: boolean;
    };
    entryAbsPath?: string;
    entryFuseBoxPath?: string;
    version?: string;
    packageRoot?: string;
    packageAltRoots?: Array<string>;
    packageJSONLocation?: string;
    browser?: {
        [key: string]: string | boolean;
    } | string;
}
export interface IResolver {
    error?: string;
    skip?: boolean;
    isExternal?: boolean;
    extension?: string;
    package?: INodeModuleLookup;
    absPath?: string;
    fuseBoxPath?: string;
    forcedStatement?: string;
    monorepoModulesPath?: string;
    tsConfigAtPath?: TsConfigAtPath;
}
export declare function resolveModule(props: IResolverProps): IResolver;
