import { type BundleConfigInput } from "./config.ts";
export interface FileEntry {
    path: string;
    lines: number;
    startLine: number;
    endLine: number;
}
export interface BundleResult {
    content: string;
    index: FileEntry[];
}
/**
 * Resolve bundle config to a list of file paths.
 * - Regular patterns respect .gitignore
 * - Force patterns (+prefix) bypass .gitignore
 * - Exclude patterns (!prefix) filter both
 */
export declare function resolvePatterns(config: BundleConfigInput, cwd: string): Promise<string[]>;
/**
 * Format the index header block.
 * Format designed for LLM context files (ChatGPT, Grok, Gemini):
 * - Numbered entries for cross-reference with file separators
 * - ASCII-only characters for broad compatibility
 * - Line locations that point to actual file content
 */
export declare function formatIndex(index: FileEntry[]): string;
export interface BundleOptions {
    includeIndex?: boolean;
    prompt?: string;
}
/**
 * Create a bundle from a list of files.
 * Line numbers in the index point to the first line of actual file content,
 * not to the separator line.
 */
export declare function createBundle(files: string[], cwd: string, options?: BundleOptions): Promise<BundleResult>;
/**
 * Bundle a single named bundle from config
 */
export declare function bundleOne(name: string, config: BundleConfigInput, cwd: string): Promise<BundleResult>;
