/** * @module @nhtio/adk/batteries/vector/vector_store_constructor */ import type { BaseVectorStore } from "./contract"; import type { BaseVectorStoreOptions } from "./types"; /** * Constructor signature for any {@link BaseVectorStore} adapter (the class itself or a subclass). * * @remarks * Re-declared at the contract level so the factory's `client` resolver can recognise a valid * adapter constructor without value-importing {@link BaseVectorStore} into modules where that * would be awkward, mirroring `SpooledArtifactConstructorLike`. */ export type VectorStoreConstructorLike = new (options: O) => BaseVectorStore; /** * Validator schema for a {@link VectorStoreConstructorLike} value. * * @remarks * Invoked at validate-time, so inspecting the constructor's prototype is safe. The check is * duck-typed: the value must be a function whose `prototype` carries every canonical adapter * instance method. This mirrors `spooledArtifactConstructorSchema`'s cross-realm-safe * pattern — `instanceof BaseVectorStore` would be tighter but would couple this contract to the * class value and reject structurally-valid (e.g. cross-realm) adapters. */ export declare const vectorStoreConstructorSchema: import("@nhtio/validation").AnySchema; /** * Returns `true` if `value` is a constructor whose prototype carries every canonical * {@link BaseVectorStore} instance method. Duck-typed; does not use `instanceof`. */ export declare const implementsVectorStoreConstructor: (value: unknown) => value is VectorStoreConstructorLike;