import type { CodebaseIndex, CodeNodeType } from './types.js';
export type ReadCodeSourceQuery = {
    nodeId: string;
} | {
    name: string;
    file?: string;
    type?: CodeNodeType;
};
export interface ReadCodeSourceOptions {
}
export interface CodeSourceCandidate {
    nodeId: string;
    name: string;
    type: CodeNodeType;
    path: string;
    relativePath?: string;
    line?: number;
    endLine?: number;
    containerName?: string;
}
export type ReadCodeSourceResult = {
    status: 'resolved';
    nodeId: string;
    name: string;
    type: CodeNodeType;
    path: string;
    relativePath?: string;
    line: number;
    endLine: number;
    containerName?: string;
    source: string;
} | {
    status: 'not_found';
    candidates: CodeSourceCandidate[];
    message: string;
} | {
    status: 'ambiguous';
    candidates: CodeSourceCandidate[];
    message: string;
} | {
    status: 'error';
    message: string;
};
export declare function readCodeSource(index: CodebaseIndex, query: ReadCodeSourceQuery, _options?: ReadCodeSourceOptions): Promise<ReadCodeSourceResult>;
