import type { RepomixConfigMerged } from '../config/configSchema.js'; import type { RepomixProgressCallback } from '../shared/types.js'; import { type SkippedFileInfo } from './file/fileCollect.js'; import type { FilesByRoot } from './file/fileTreeGenerate.js'; import type { ProcessedFile } from './file/fileTypes.js'; import type { SuspiciousFileResult } from './security/securityCheck.js'; import type { PackSkillParams } from './skill/packSkill.js'; export interface PackResult { totalFiles: number; totalCharacters: number; totalTokens: number; fileCharCounts: Record; fileTokenCounts: Record; gitDiffTokenCount: number; gitLogTokenCount: number; outputFiles?: string[]; suspiciousFilesResults: SuspiciousFileResult[]; suspiciousGitDiffResults: SuspiciousFileResult[]; suspiciousGitLogResults: SuspiciousFileResult[]; processedFiles: ProcessedFile[]; safeFilePaths: string[]; skippedFiles: SkippedFileInfo[]; } declare const defaultDeps: { searchFiles: (rootDir: string, config: RepomixConfigMerged, explicitFiles?: string[]) => Promise; collectFiles: (filePaths: string[], rootDir: string, config: RepomixConfigMerged, progressCallback?: RepomixProgressCallback, deps?: { readRawFile: (filePath: string, maxFileSize: number) => Promise; }) => Promise; processFiles: (rawFiles: import("./file/fileTypes.js").RawFile[], config: RepomixConfigMerged, progressCallback: RepomixProgressCallback, deps?: { initTaskRunner: (options: import("../shared/processConcurrency.js").WorkerOptions) => import("../shared/processConcurrency.js").TaskRunner; getFileManipulator: (filePath: string) => import("./file/fileManipulate.js").FileManipulator | null; }) => Promise; validateFileSafety: (rawFiles: import("./file/fileTypes.js").RawFile[], progressCallback: RepomixProgressCallback, config: RepomixConfigMerged, gitDiffResult?: import("./git/gitDiffHandle.js").GitDiffResult, gitLogResult?: import("./git/gitLogHandle.js").GitLogResult, deps?: { runSecurityCheck: (rawFiles: import("./file/fileTypes.js").RawFile[], progressCallback?: RepomixProgressCallback, gitDiffResult?: import("./git/gitDiffHandle.js").GitDiffResult, gitLogResult?: import("./git/gitLogHandle.js").GitLogResult, deps?: { initTaskRunner: (options: import("../shared/processConcurrency.js").WorkerOptions) => import("../shared/processConcurrency.js").TaskRunner; getProcessConcurrency: () => number; }) => Promise; filterOutUntrustedFiles: (rawFiles: import("./file/fileTypes.js").RawFile[], suspiciousFilesResults: SuspiciousFileResult[]) => import("./file/fileTypes.js").RawFile[]; }) => Promise<{ safeRawFiles: import("./file/fileTypes.js").RawFile[]; safeFilePaths: string[]; suspiciousFilesResults: SuspiciousFileResult[]; suspiciousGitDiffResults: SuspiciousFileResult[]; suspiciousGitLogResults: SuspiciousFileResult[]; }>; produceOutput: (rootDirs: string[], config: RepomixConfigMerged, processedFiles: ProcessedFile[], allFilePaths: string[], gitDiffResult: import("./git/gitDiffHandle.js").GitDiffResult | undefined, gitLogResult: import("./git/gitLogHandle.js").GitLogResult | undefined, progressCallback: RepomixProgressCallback, filePathsByRoot?: FilesByRoot[], emptyDirPaths?: string[], overrideDeps?: Partial<{ generateOutput: (rootDirs: string[], config: RepomixConfigMerged, processedFiles: ProcessedFile[], allFilePaths: string[], gitDiffResult?: import("./git/gitDiffHandle.js").GitDiffResult | undefined, gitLogResult?: import("./git/gitLogHandle.js").GitLogResult | undefined, filePathsByRoot?: FilesByRoot[], emptyDirPaths?: string[], deps?: { buildOutputGeneratorContext: (rootDirs: string[], config: RepomixConfigMerged, allFilePaths: string[], processedFiles: ProcessedFile[], gitDiffResult?: import("./git/gitDiffHandle.js").GitDiffResult | undefined, gitLogResult?: import("./git/gitLogHandle.js").GitLogResult | undefined, filePathsByRoot?: FilesByRoot[], emptyDirPaths?: string[], deps?: { listDirectories: (rootDir: string, config: RepomixConfigMerged) => Promise; listFiles: (rootDir: string, config: RepomixConfigMerged) => Promise; searchFiles: (rootDir: string, config: RepomixConfigMerged, explicitFiles?: string[]) => Promise; }) => Promise; generateHandlebarOutput: (config: RepomixConfigMerged, renderContext: import("./output/outputGeneratorTypes.js").RenderContext, processedFiles?: ProcessedFile[]) => Promise; generateParsableXmlOutput: (renderContext: import("./output/outputGeneratorTypes.js").RenderContext) => Promise; generateParsableJsonOutput: (renderContext: import("./output/outputGeneratorTypes.js").RenderContext) => Promise; sortOutputFiles: (files: ProcessedFile[], config: RepomixConfigMerged, deps?: import("./output/outputSort.js").SortDeps) => Promise; }) => Promise; writeOutputToDisk: (output: string, config: RepomixConfigMerged) => Promise; copyToClipboardIfEnabled: (output: string, progressCallback: RepomixProgressCallback, config: RepomixConfigMerged) => Promise; }>) => Promise; calculateMetrics: (processedFiles: ProcessedFile[], outputPromise: Promise, progressCallback: RepomixProgressCallback, config: RepomixConfigMerged, gitDiffResult: import("./git/gitDiffHandle.js").GitDiffResult | undefined, gitLogResult: import("./git/gitLogHandle.js").GitLogResult | undefined, overrideDeps?: Partial<{ calculateFileMetrics: (processedFiles: ProcessedFile[], targetFilePaths: string[], tokenCounterEncoding: import("./metrics/tokenEncodings.js").TokenEncoding, progressCallback: RepomixProgressCallback, deps: { taskRunner: import("./metrics/metricsWorkerRunner.js").MetricsTaskRunner; }) => Promise; calculateOutputMetrics: (content: string, encoding: import("./metrics/tokenEncodings.js").TokenEncoding, path: string | undefined, deps: { taskRunner: import("./metrics/metricsWorkerRunner.js").MetricsTaskRunner; }) => Promise; calculateGitDiffMetrics: (config: RepomixConfigMerged, gitDiffResult: import("./git/gitDiffHandle.js").GitDiffResult | undefined, deps: { taskRunner: import("./metrics/metricsWorkerRunner.js").MetricsTaskRunner; }) => Promise; calculateGitLogMetrics: (config: RepomixConfigMerged, gitLogResult: import("./git/gitLogHandle.js").GitLogResult | undefined, deps: { taskRunner: import("./metrics/metricsWorkerRunner.js").MetricsTaskRunner; }) => Promise<{ gitLogTokenCount: number; }>; taskRunner: import("./metrics/metricsWorkerRunner.js").MetricsTaskRunner | undefined; }>) => Promise; createMetricsTaskRunner: (numOfTasks: number, encoding: import("./metrics/tokenEncodings.js").TokenEncoding) => import("./metrics/calculateMetrics.js").MetricsTaskRunnerWithWarmup; sortPaths: (filePaths: string[]) => string[]; sortOutputFiles: (files: ProcessedFile[], config: RepomixConfigMerged, deps?: import("./output/outputSort.js").SortDeps) => Promise; prefetchSortData: (config: RepomixConfigMerged, deps?: import("./output/outputSort.js").SortDeps) => Promise; getGitDiffs: (rootDirs: string[], config: RepomixConfigMerged, deps?: { getWorkTreeDiff: (directory: string, deps?: { execGitDiff: (directory: string, options?: string[], deps?: { execFileAsync: typeof import("child_process").execFile.__promisify__; }) => Promise; isGitRepository: (directory: string, deps?: { execGitRevParse: (directory: string, deps?: { execFileAsync: typeof import("child_process").execFile.__promisify__; }) => Promise; }) => Promise; }) => Promise; getStagedDiff: (directory: string, deps?: { execGitDiff: (directory: string, options?: string[], deps?: { execFileAsync: typeof import("child_process").execFile.__promisify__; }) => Promise; isGitRepository: (directory: string, deps?: { execGitRevParse: (directory: string, deps?: { execFileAsync: typeof import("child_process").execFile.__promisify__; }) => Promise; }) => Promise; }) => Promise; }) => Promise; getGitLogs: (rootDirs: string[], config: RepomixConfigMerged, deps?: { getGitLog: (directory: string, maxCommits: number, deps?: { execGitLog: (directory: string, maxCommits: number, gitSeparator: string, deps?: { execFileAsync: typeof import("child_process").execFile.__promisify__; }) => Promise; isGitRepository: (directory: string, deps?: { execGitRevParse: (directory: string, deps?: { execFileAsync: typeof import("child_process").execFile.__promisify__; }) => Promise; }) => Promise; }) => Promise; }) => Promise; packSkill: (params: PackSkillParams) => Promise; }; export interface PackOptions { skillName?: string; skillDir?: string; skillProjectName?: string; skillSourceUrl?: string; } export declare const pack: (rootDirs: string[], config: RepomixConfigMerged, progressCallback?: RepomixProgressCallback, overrideDeps?: Partial, explicitFiles?: string[], options?: PackOptions) => Promise; export {};