import type { TemplateRepository, TemplatePass0, TemplatePass1, TemplatePass2 } from "../src/types.js";
/**
 * Common CLI options interface
 */
export interface CliOptions {
    help?: boolean;
    version?: boolean;
    input?: string | string[];
    output?: string;
    generator?: string;
    ext?: string;
    includePrefix?: string;
    preserveCodeRef?: boolean;
    clean?: boolean;
    watch?: boolean;
    debounce?: number;
    verbose?: boolean;
}
/**
 * Display source code context around an error line using the appropriate pipeline result
 */
export declare function displaySourceContext(filePath: string, lineNumber: number, contextLines?: number, result?: {
    pass0?: TemplateRepository<TemplatePass0>;
    pass1?: TemplateRepository<TemplatePass1>;
    pass2?: TemplateRepository<TemplatePass2>;
    files?: TemplateRepository<string>;
}, errorType?: string, verbose?: boolean): Promise<void>;
/**
 * Display enhanced error information with source context
 */
export declare function displayError(error: Error, verbose: boolean, result?: {
    pass0?: TemplateRepository<TemplatePass0>;
    pass1?: TemplateRepository<TemplatePass1>;
    pass2?: TemplateRepository<TemplatePass2>;
    files?: TemplateRepository<string>;
}): Promise<void>;
/**
 * Format file size for display
 */
export declare function formatFileSize(bytes: number): string;
/**
 * Tree node structure for file display
 */
type TreeNode = {
    type: "file";
    size: number;
    error?: string;
} | {
    type: "directory";
    children: Record<string, TreeNode>;
};
/**
 * Build a file tree structure from a flat map of files
 */
export declare function buildFileTree(files: Map<string, {
    error?: string;
    size: number;
}>): Record<string, TreeNode>;
/**
 * Display a file tree with sizes and errors
 */
export declare function displayFileTree(files: Map<string, {
    error?: string;
    size: number;
}>): void;
/**
 * Show help message
 */
export declare function showHelp(): void;
/**
 * Show version information
 */
export declare function showVersion(): Promise<void>;
/**
 * Validate CLI options
 */
export declare function validateOptions(options: CliOptions): string[];
/**
 * Parse input directories with optional aliases from CLI arguments
 * Format: "dir1" or "dir1|@alias1" or ["dir1", "dir2|@alias2"]
 */
export declare function parseInputDirectories(input: string | string[]): ({
    path: string;
    alias?: string;
} | string)[];
export {};
//# sourceMappingURL=cli-utils.d.ts.map