repomix
Version:
A tool to pack repository contents to single file for AI consumption
43 lines (42 loc) • 2.46 kB
TypeScript
import type { RepomixConfigMerged } from '../../config/configSchema.js';
import type { RepomixProgressCallback } from '../../shared/types.js';
import type { ProcessedFile } from '../file/fileTypes.js';
import type { GitDiffResult } from '../git/gitDiffHandle.js';
import type { GitLogResult } from '../git/gitLogHandle.js';
import { type MetricsTaskRunner } from './metricsWorkerRunner.js';
import type { TokenEncoding } from './TokenCounter.js';
export interface CalculateMetricsResult {
totalFiles: number;
totalCharacters: number;
totalTokens: number;
fileCharCounts: Record<string, number>;
fileTokenCounts: Record<string, number>;
gitDiffTokenCount: number;
gitLogTokenCount: number;
}
export interface MetricsTaskRunnerWithWarmup {
taskRunner: MetricsTaskRunner;
warmupPromise: Promise<unknown>;
}
export declare const createMetricsTaskRunner: (numOfTasks: number, encoding: TokenEncoding) => MetricsTaskRunnerWithWarmup;
declare const defaultDeps: {
calculateFileMetrics: (processedFiles: ProcessedFile[], targetFilePaths: string[], tokenCounterEncoding: TokenEncoding, progressCallback: RepomixProgressCallback, deps: {
taskRunner: MetricsTaskRunner;
}) => Promise<import("./workers/types.js").FileMetrics[]>;
calculateOutputMetrics: (content: string, encoding: TokenEncoding, path: string | undefined, deps: {
taskRunner: MetricsTaskRunner;
}) => Promise<number>;
calculateGitDiffMetrics: (config: RepomixConfigMerged, gitDiffResult: GitDiffResult | undefined, deps: {
taskRunner: MetricsTaskRunner;
}) => Promise<number>;
calculateGitLogMetrics: (config: RepomixConfigMerged, gitLogResult: GitLogResult | undefined, deps: {
taskRunner: MetricsTaskRunner;
}) => Promise<{
gitLogTokenCount: number;
}>;
taskRunner: MetricsTaskRunner | undefined;
};
export declare const extractOutputWrapper: (output: string, processedFilesInOutputOrder: ReadonlyArray<ProcessedFile>) => string | null;
export declare const canUseFastOutputTokenPath: (config: RepomixConfigMerged) => boolean;
export declare const calculateMetrics: (processedFiles: ProcessedFile[], outputPromise: Promise<string | string[]>, progressCallback: RepomixProgressCallback, config: RepomixConfigMerged, gitDiffResult: GitDiffResult | undefined, gitLogResult: GitLogResult | undefined, overrideDeps?: Partial<typeof defaultDeps>) => Promise<CalculateMetricsResult>;
export {};