import { SyncWorkspace } from '../../agent-utils/index.js';
import { EmbeddingApi } from './EmbeddingApi.js';
import { BaseDocumentMetadata, LocalDocument } from './LocalDocument.js';
export declare class LocalCollection<TMetadata extends BaseDocumentMetadata = BaseDocumentMetadata> {
    readonly uri: string;
    private embeddingApi;
    private workspace;
    private documentStore;
    constructor(uri: string, embeddingApi: EmbeddingApi, workspace: SyncWorkspace);
    get name(): string;
    add(items: string[], metadatas?: TMetadata[]): Promise<void>;
    search(query: string, limit?: number): Promise<LocalDocument<TMetadata>[]>;
    iterativeSearch(query: string | number[]): AsyncGenerator<LocalDocument<TMetadata>, void, void>;
    iterativeSearch(queryVector: number[]): AsyncGenerator<LocalDocument<TMetadata>, void, void>;
    searchWithSurroundingContext(query: string, opts: {
        surroundingCharacters: number;
        overlap?: number;
        limit?: number;
    }): Promise<{
        match: LocalDocument<TMetadata>;
        withSurrounding: string;
    }[]>;
    searchUnique(query: string, limit: number): Promise<LocalDocument<TMetadata>[]>;
    save(): void;
    delete(): void;
}
