export interface FilePath {
    path: string;
    options?: {
        ensurePath?: boolean;
        baseDir?: string;
    };
}
export interface DirFileObject {
    baseDir?: string;
    dirs?: (string | FilePath)[];
    files?: (string | FilePath)[];
}
/**
 *
 * Validates whether files and directories exists, creates them if ensurePath is set to true
 *
 * Directories will be evaluated first, then files
 *
 * Example:
 *
 * ```
 * validateProjectDirectories({
    baseDir: __dirname, // this is optional, defaults to process.cwd()
    files: [
        "index.ts",
        "src/validators/index.ts", // if exists - do nothing
        {
            path: "src/components/test.ts", // if exists do nothing, otherwise create empty file
            options: {
                ensurePath: true
            }
        },
        "src/doesntexist/a.ts" // Doesn't exist, will log error and terminate
    ],
    dirs: [
        "/src/validators", // if exists - do nothing
        {
            path: "src/test/test", // if exists do nothing, otherwise create empty directories recursively
            options: {
                ensurePath: true
            }
        },
        "/src/doesntexist/" // Doesn't exist, will log error and terminate
    ]
})
```
 */
export declare function validateProjectDirectories(obj: DirFileObject, reporter?: Function): void;
