/** Per-work index dir: <dataDir>/works/<id>/clip-index/. */
export declare function clipIndexDir(workId: string): string;
export interface BuildOk {
    ok: true;
    stub: false;
    assetCount: number;
    model: string;
    indexedAt: string;
    durationMs: number;
}
export interface StubResult {
    stub: true;
    reason: string;
    [k: string]: unknown;
}
export type BuildResult = BuildOk | StubResult;
export interface ClipSearchHit {
    uri: string;
    kind: "image" | "video";
    score: number;
    frameSrc?: string;
}
export interface SearchOk {
    stub: false;
    results: ClipSearchHit[];
    searchMs: number;
}
export type SearchResult = SearchOk | StubResult;
export interface StatusOk {
    stub: false;
    model: string;
    assetCount: number;
    indexedAt: string;
    embeddingDim?: number;
}
export type StatusResult = StatusOk | StubResult;
export declare function buildClipIndex(workId: string): Promise<BuildResult>;
export declare function searchClipIndex(_workId: string, _query: string, _topK: number): Promise<SearchResult>;
export declare function getClipIndexStatus(workId: string): Promise<StatusResult>;
//# sourceMappingURL=clip-index.d.ts.map