import { FileSystem, type Logger } from '@servicenow/sdk-build-core'; export type ProjectSourceFiles = { sourceFiles: string[]; }; /** * Reads the source-file inputs from `_project.json` for the app source artifact. * * @returns an empty list when `_project.json` is absent. * @throws {Error} if `_project.json` is present but cannot be read or parsed — a corrupt file * fails hard rather than silently producing a build with no editable source, which would * otherwise look identical to the legitimate case where no source files exist. */ export declare function readProjectJsonSourceFiles(fs: FileSystem, metadataDir: string): ProjectSourceFiles; export type SourceArtifactFiles = { files: Map; totalSize: number; skippedFiles: string[]; }; /** * Assembles the set of files for the AIUX source artifact from _project.json. * * Reads `sourceFiles` (project-relative paths) from disk under `projectDir`. * * @returns the file map, total size, and skipped-file warnings — or `null` when there are * no source files to attach at all. * @throws {Error} if the combined size would exceed `MAX_TOTAL_SIZE`, or if `_project.json` is * present but cannot be read or parsed (see {@link readProjectJsonSourceFiles}). */ export declare function collectSourceArtifactFiles(fs: FileSystem, { metadataDir, projectDir, useNowPackIgnore, logger, }: { metadataDir: string; projectDir: string; useNowPackIgnore?: boolean; logger?: Logger; }): Promise;