import type { BudgetExceededBehavior, BuildCodebaseOptions } from './build.js';
import type { CodeChunk, CodeChunkOptions } from './chunk.js';
import type { CodebaseIndex, ContentMode } from './types.js';
import type { CodebaseIndexSlim } from './slim.js';
import type { OnProgress } from '../progress-event.js';
import type { TokenizerName } from '../tokens.js';
import { type CooperativeOption } from '../utils.js';
export interface BuildCodebaseIndexIsolatedOptions extends BuildCodebaseOptions {
    slim?: boolean;
    signal?: AbortSignal;
}
export interface SerializableCodeChunkOptions extends Omit<CodeChunkOptions, 'countTokens'> {
    tokenizer?: TokenizerName;
}
export type ChunkFromStoreIsolatedStrategy = 'prefer-cache' | 'ensure-fresh' | 'rebuild';
export interface ChunkFromStoreIsolatedOptions {
    repoRoot: string;
    cacheDir: string;
    excludeDir?: string[];
    noGitignore?: boolean;
    ignorePatterns?: string[];
    overlayIgnorePatterns?: string[];
    contentMode?: ContentMode;
    maxFileSizeBytes?: number;
    maxLines?: number;
    skipMinified?: boolean;
    maxFiles?: number;
    maxBytes?: number;
    onBudgetExceeded?: BudgetExceededBehavior;
    parseConcurrency?: number;
    strategy?: ChunkFromStoreIsolatedStrategy;
    chunk?: SerializableCodeChunkOptions;
    cooperative?: CooperativeOption;
    signal?: AbortSignal;
}
export declare function buildCodebaseIndexIsolated(options: BuildCodebaseIndexIsolatedOptions, onProgress?: OnProgress): Promise<CodebaseIndex | CodebaseIndexSlim>;
export declare function chunkFromStoreIsolated(options: ChunkFromStoreIsolatedOptions, onProgress?: OnProgress): Promise<CodeChunk[]>;
