import { TSESTree } from '@typescript-eslint/utils';
import type { CompilerOptions, ModuleResolutionCache } from 'typescript';
export type MessageIds = 'missingTypeScript' | 'preferSourceImport' | 'preferSourceImports';
export type Options = [
    {
        fixStyle?: 'auto' | 'preserve-alias' | 'relative';
        ignore?: string[];
        paths?: Record<string, string | string[]>;
        tsconfig?: boolean | string;
    }?
];
export type ReExportTarget = {
    importedName: string;
    resolvedFilePath: string;
    sourceSpecifier: string;
    isTypeOnly: boolean;
    fromExportAll: boolean;
};
export type NamedImportSpecifier = TSESTree.ImportSpecifier & {
    imported: TSESTree.Identifier;
    local: TSESTree.Identifier;
};
export type SupportedImportSpecifier = NamedImportSpecifier | TSESTree.ImportDefaultSpecifier;
export type MatchedSpecifier = {
    preferredSourceSpecifier: string | null;
    specifier: SupportedImportSpecifier;
    reExportTarget: ReExportTarget;
};
export type BarrelAnalysis = {
    explicitReExports: Map<string, ReExportTarget>;
    exportAllReExports: Map<string, ReExportTarget>;
};
export type AnalysisCaches = {
    exportedBindings: Map<string, Set<string>>;
    parsedModules: Map<string, TSESTree.Program | null>;
};
export type TsconfigInfo = {
    compilerOptions: CompilerOptions;
    configFilePath: string;
    moduleResolutionCache: ModuleResolutionCache;
};
export type ResolutionCaches = {
    barrelAnalyses: Map<string, BarrelAnalysis | null>;
    importResolutions: Map<string, string | null>;
    tsconfigInfo: Map<string, TsconfigInfo | null>;
    tsconfigPaths: Map<string, string | null>;
};
export type ManualAliasMapping = {
    pattern: string;
    target: string;
};
//# sourceMappingURL=types.d.ts.map