import { ExecOptions } from 'child_process';
import { PackageDetails } from './interfaces.js';
export declare var getFileImports: (filePath: any) => Promise<string[]>;
/**
 *
 * @param importPath The import path to check
 * @param curFileDepth How many folders deep the current file is (0 = src, 1 = src/foo, etc.)
 * @returns
 */
export declare var isInvalidLINCDImport: (importPath: string, curFileDepth: number) => boolean;
export declare var isImportOutsideOfPackage: (importPath: string, curFileDepth: number) => boolean;
/**
 *
 * @param importPath The import path to check
 * @param curFileDepth How many folders deep the current file is (0 = src, 1 = src/foo, etc.)
 * @returns
 */
export declare var isValidLINCDImport: (importPath: string, curFileDepth: number) => boolean;
export declare var isImportWithMissingExtension: (importPath: string) => boolean;
export declare var getPackageJSON: (root?: string, error?: boolean) => any;
/**
 * Scans package.json for dependencies that are LINCD packages
 * Also looks into dependencies of dependencies
 * If no packageJson is given, it will attempt to obtain it from the current working directory
 * Returns an array of lincd packages, with each entry containing an array with the package name and the local path to the package
 * @param packageJson
 */
export declare var getLINCDDependencies: (packageJson?: any, checkedPackages?: Set<string>) => [string, string, string[]][];
export declare const getLastBuildTime: (packagePath: any) => {
    lastModified: Date;
    lastModifiedName: any;
    lastModifiedTime: number;
};
export declare const getLastModifiedSourceTime: (packagePath: any) => {
    lastModified: Date;
    lastModifiedName: any;
    lastModifiedTime: number;
};
export declare const getLastCommitTime: (packagePath: any) => Promise<{
    date: Date;
    changes: string;
    commitId: string;
}>;
export declare const getLastModifiedFile: (filePath: any, config?: {}) => {
    lastModified: Date;
    lastModifiedName: any;
    lastModifiedTime: number;
};
export declare var getModulePackageJSON: (module_name: any, work_dir?: any) => any;
export declare function execp(cmd: any, log?: boolean, allowError?: boolean, options?: any): Promise<null>;
export declare function execPromise(command: any, log?: boolean, allowError?: boolean, options?: ExecOptions, pipeOutput?: boolean): Promise<string>;
export declare function generateScopedNameProduction(cssClassName: any, filepath: any, css?: any): string;
export declare function generateScopedName(cssClassName: any, filepath: any, css?: any): string;
export declare const needsRebuilding: (pkg: PackageDetails, useGitForLastModified: boolean, log?: boolean) => Promise<boolean>;
export declare function log(...messages: any[]): void;
export declare function debug(config: any, ...messages: any[]): void;
export declare function debugInfo(...messages: any[]): void;
export declare function warn(...messages: any[]): void;
export declare function flatten(arr: any): any;
export declare function getLinkedTailwindColors(): {
    'primary-color': string;
    'font-color': string;
};
/**
 * Recursively get all files in a directory
 * https://stackoverflow.com/a/45130990/831465
 * @param dir The directory to get files from
 * @returns A promise that resolves to an array of file paths
 */
export declare function getFiles(dir: string, filenameFilter?: string): Promise<string[]>;
/**
 * Strip ANSI escape codes from a string
 * @param str The string to strip ANSI codes from
 * @returns The string with ANSI codes removed
 */
export declare function stripAnsi(str: string): string;
//# sourceMappingURL=utils.d.ts.map