import { MapxGraph } from './graph.js';
import { Store } from './store.js';
import '../types.js';
import './store-interface.js';

interface ContextOptions {
    task: string;
    seeds?: string[];
    tokens?: number;
    depth?: number;
    repo?: string;
}
interface ContextResult {
    includedFiles: Array<{
        path: string;
        language: string;
        lineCount: number;
        sizeBytes: number;
        symbols: Array<{
            name: string;
            kind: string;
            scope: string | null;
            startLine: number;
            endLine: number;
        }>;
    }>;
    excludedFiles: string[];
    edges: Array<{
        sourceFile: string;
        targetFile: string;
        sourceSymbol: string | null;
        targetSymbol: string | null;
        edgeType: string;
    }>;
    estimatedTokens: number;
    matchedSymbols?: Array<{
        name: string;
        kind: string;
        filePath: string;
    }>;
    files?: Array<{
        path: string;
        language: string;
        lineCount: number;
        sizeBytes: number;
    }>;
    symbols?: Array<{
        name: string;
        kind: string;
        filePath: string;
    }>;
}
declare class ContextBuilder {
    private store;
    private graph;
    constructor(store: Store, graph: MapxGraph);
    static extractKeywords(text: string): string[];
    buildContext(options: ContextOptions): Promise<ContextResult>;
}

export { ContextBuilder, type ContextOptions, type ContextResult };
