import type { RagChunk } from '../../types/sparkContracts';
import type { RagStore } from '../ragStore';
export interface ResolveAppSymbolOptions {
    symbol: string;
    codebaseId?: string;
    buildId?: string;
    filePath?: string;
    r8MappingText?: string;
    obfuscatedClass?: string;
    obfuscatedMethod?: string;
    line?: number;
    topK?: number;
}
export interface ResolveKernelSymbolOptions {
    symbol?: string;
    address?: string;
    codebaseId?: string;
    vendor?: string;
    buildId?: string;
    kallsymsText?: string;
    systemMapText?: string;
    topK?: number;
}
export interface ResolveNativeSymbolOptions {
    symbol?: string;
    address?: string;
    codebaseId?: string;
    buildId?: string;
    breakpadSymText?: string;
    topK?: number;
}
export interface ResolvedSymbolCandidate {
    chunkId: string;
    codebaseId?: string;
    filePath?: string;
    lineRange?: {
        start: number;
        end: number;
    };
    symbol?: string;
    language?: RagChunk['language'];
    confidence: 'exact' | 'file' | 'text';
}
export interface ResolveAppSymbolResult {
    success: boolean;
    query: string;
    candidates: ResolvedSymbolCandidate[];
    degradedReason?: 'missing_build_id' | 'no_match' | 'symbol_only_low_confidence';
}
export type ResolveSymbolResult = ResolveAppSymbolResult;
export declare class SymbolResolver {
    private readonly store;
    constructor(store: RagStore);
    resolveApp(opts: ResolveAppSymbolOptions): ResolveAppSymbolResult;
    resolveKernel(opts: ResolveKernelSymbolOptions): ResolveSymbolResult;
    resolveNative(opts: ResolveNativeSymbolOptions): ResolveSymbolResult;
    private resolveSourceKind;
}
//# sourceMappingURL=symbolResolver.d.ts.map