import type { RagStore } from '../ragStore';
import type { CodebaseRegistry } from '../codebase/codebaseRegistry';
import { PathSecurityGate } from '../codebase/pathSecurityGate';
import { chunkSourceBySymbols, detectSourceSymbol, languageForPath } from './baseIngester';
export interface AppSourceIngestOptions {
    maxChunkChars?: number;
    pathPrefix?: string;
}
export interface AppSourceIngestError {
    filePath: string;
    reason: string;
}
export interface AppSourceIngestResult {
    codebaseId: string;
    filesProcessed: number;
    chunksAdded: number;
    chunksSkipped: number;
    blockedFileCount: number;
    redactionHitCount: number;
    errors: AppSourceIngestError[];
}
declare function makeChunkId(codebaseId: string, indexGeneration: number, relativePath: string, startLine: number): string;
export declare class AppSourceIngester {
    private readonly store;
    private readonly registry;
    private readonly gate;
    constructor(store: RagStore, registry: CodebaseRegistry, gate?: PathSecurityGate);
    ingest(codebaseId: string, opts?: AppSourceIngestOptions): Promise<AppSourceIngestResult>;
}
export declare const __TEST_ONLY__: {
    chunkSource: typeof chunkSourceBySymbols;
    detectSymbol: typeof detectSourceSymbol;
    makeChunkId: typeof makeChunkId;
    languageFor: typeof languageForPath;
};
export {};
//# sourceMappingURL=appSourceIngester.d.ts.map