import type { EvidenceAtom, RetrievalQuery } from "@oscharko-dev/keiko-contracts/connected-context";
import type { WorkspaceFs } from "./fs.js";
import type { SearchLimits, SearchScope } from "./repoSearch.js";
export interface StructuralAdapterDeps {
    readonly nowMs?: () => number;
}
export interface StructuralAdapter {
    readonly name: string;
    readonly isAvailable: (scope: SearchScope, fs: WorkspaceFs) => Promise<boolean>;
    readonly lookup: (scope: SearchScope, query: RetrievalQuery, limits: SearchLimits, fs: WorkspaceFs, deps?: StructuralAdapterDeps) => Promise<readonly EvidenceAtom[]>;
}
export interface StructuralAdapterRegistry {
    readonly adapters: readonly StructuralAdapter[];
}
export interface AdapterError {
    readonly name: string;
    readonly message: string;
}
export interface RunAllResult {
    readonly atoms: readonly EvidenceAtom[];
    readonly unavailable: readonly string[];
    readonly errored: readonly AdapterError[];
    readonly elapsedMs: number;
}
export declare function createDefaultStructuralRegistry(): StructuralAdapterRegistry;
export declare function runStructuralAdapters(registry: StructuralAdapterRegistry, scope: SearchScope, query: RetrievalQuery, limits: SearchLimits, fs: WorkspaceFs, deps?: StructuralAdapterDeps): Promise<RunAllResult>;
//# sourceMappingURL=structuralAdapters.d.ts.map