import type { Stats } from 'fs-extra';
export interface DeepReadingNode {
    /** 文件名 xxx.js */
    name: string;
    /** 文件元信息 */
    stats: Stats;
    /** 遍历的顶层路径 */
    source: string;
    /** 文件相对于顶层的路径 */
    offset: string;
    /** 文件的绝对路径 */
    current: string;
}
export type DeepReadingFilter = (node: DeepReadingNode) => boolean | Promise<boolean>;
export type DeepReadingHandler = (node: DeepReadingNode) => void | Promise<void>;
export interface DeepReadingOptions {
    /** 需要扫描的代码路径 */
    source: string;
    /** 处理文件 */
    handler: DeepReadingHandler;
    /** 过滤文件（为 true 才执行，否则跳过） */
    filter?: DeepReadingFilter;
    /** 是否包括文件夹（为 true 则会将文件夹交给 handler） */
    includeDir?: boolean;
}
/**
 * 深度遍历读取各个文件的信息
 *
 * - 不会读取文件夹的信息
 */
export declare function deepRead({ source, handler, filter }: DeepReadingOptions): Promise<void>;
/**
 * 获取文件导出的信息（支持 ts、tsx、js、mjs、json 文件）
 *
 * @param source 指定要读取的路径
 * @param strict 启用严格模式（严格模式：如果获取不到就报错退出）
 * @param expireTime 指定缓存过期时间（设为 0，则长期有效）
 */
export declare function readExports(source: string, strict?: boolean, expireTime?: number): Promise<any>;
/**
 * 获取文件导出的信息（支持 js、mjs、json 文件）
 *
 * @param source 指定要读取的路径
 * @param strict 启用严格模式（严格模式：如果获取不到就报错退出）
 */
export declare function readExportsSync(source: string, strict?: boolean): any;
