import type { StorageDomains } from '@mastra/core/storage'; import { MastraCompositeStore, ObservabilityStorage as CoreObservabilityStorage } from '@mastra/core/storage'; import { DuckDBConnection } from './db/index.js'; import type { ObservabilityDuckDBConfig, ObservabilityStorageDuckDB as ObservabilityStorageDuckDBImpl } from './domains/observability/index.js'; export { DuckDBConnection } from './db/index.js'; export type { DuckDBStorageConfig } from './db/index.js'; export type { ObservabilityDuckDBConfig } from './domains/observability/index.js'; type ObservabilityStoreImpl = ObservabilityStorageDuckDBImpl; /** * Lazy DuckDB observability facade. * * This avoids loading the concrete observability implementation until init or first use, * which lets DuckDBStore degrade cleanly when paired with an older @mastra/core runtime. */ export declare class ObservabilityStorageDuckDB extends CoreObservabilityStorage { private db; private delegate; private loadPromise; private unavailableError; constructor(config: ObservabilityDuckDBConfig); private createUnavailableError; private loadDelegate; private requireDelegate; get observabilityStrategy(): ObservabilityStoreImpl['observabilityStrategy']; get tracingStrategy(): ObservabilityStoreImpl['tracingStrategy']; getFeatures(): ReturnType; init(...args: Parameters): ReturnType; migrateSpans(...args: Parameters): ReturnType; dangerouslyClearAll(...args: Parameters): ReturnType; createSpan(...args: Parameters): ReturnType; updateSpan(...args: Parameters): ReturnType; getSpan(...args: Parameters): ReturnType; getSpans(...args: Parameters): ReturnType; getRootSpan(...args: Parameters): ReturnType; getTrace(...args: Parameters): ReturnType; getTraceLight(...args: Parameters): ReturnType; listTraces(...args: Parameters): ReturnType; listBranches(...args: Parameters): ReturnType; batchCreateSpans(...args: Parameters): ReturnType; batchUpdateSpans(...args: Parameters): ReturnType; batchDeleteTraces(...args: Parameters): ReturnType; batchCreateLogs(...args: Parameters): ReturnType; listLogs(...args: Parameters): ReturnType; batchCreateMetrics(...args: Parameters): ReturnType; listMetrics(...args: Parameters): ReturnType; getMetricAggregate(...args: Parameters): ReturnType; getMetricBreakdown(...args: Parameters): ReturnType; getMetricTimeSeries(...args: Parameters): ReturnType; getMetricPercentiles(...args: Parameters): ReturnType; getMetricNames(...args: Parameters): ReturnType; getMetricLabelKeys(...args: Parameters): ReturnType; getMetricLabelValues(...args: Parameters): ReturnType; getEntityTypes(...args: Parameters): ReturnType; getEntityNames(...args: Parameters): ReturnType; getServiceNames(...args: Parameters): ReturnType; getEnvironments(...args: Parameters): ReturnType; getTags(...args: Parameters): ReturnType; createScore(...args: Parameters): ReturnType; batchCreateScores(...args: Parameters): ReturnType; listScores(...args: Parameters): ReturnType; getScoreById(...args: Parameters): ReturnType; getScoreAggregate(...args: Parameters): ReturnType; getScoreBreakdown(...args: Parameters): ReturnType; getScoreTimeSeries(...args: Parameters): ReturnType; getScorePercentiles(...args: Parameters): ReturnType; createFeedback(...args: Parameters): ReturnType; batchCreateFeedback(...args: Parameters): ReturnType; listFeedback(...args: Parameters): ReturnType; getFeedbackAggregate(...args: Parameters): ReturnType; getFeedbackBreakdown(...args: Parameters): ReturnType; getFeedbackTimeSeries(...args: Parameters): ReturnType; getFeedbackPercentiles(...args: Parameters): ReturnType; } /** Configuration for the top-level DuckDBStore composite. */ export interface DuckDBStoreConfig { /** Store identifier. Defaults to 'duckdb'. */ id?: string; /** * Path to the DuckDB database file. * @default 'mastra.duckdb' * Use ':memory:' for an ephemeral in-memory database. */ path?: string; } /** * DuckDB storage adapter for Mastra. * * Currently provides observability storage (traces, metrics, logs, scores, feedback). * Use via composition with another store for domains DuckDB doesn't yet cover. * * @example * ```typescript * // As the observability backend in a composed store * const storage = new MastraCompositeStore({ * id: 'my-store', * default: new LibSQLStore({ id: 'my-store', url: 'file:./dev.db' }), * domains: { * observability: new DuckDBStore().observability, * }, * }); * * // Or standalone (only observability domain available) * const duckdb = new DuckDBStore(); * const obs = await duckdb.getStore('observability'); * ``` */ export declare class DuckDBStore extends MastraCompositeStore { readonly db: DuckDBConnection; private observabilityStore; stores: StorageDomains; constructor(config?: DuckDBStoreConfig); /** Convenience accessor for the observability domain. */ get observability(): ObservabilityStorageDuckDB; /** * Release the underlying DuckDB instance so the file lock is freed. * Called automatically by Mastra.shutdown(). Without this, the DuckDB * native write lock persists past process exit during dev hot reloads, * causing "Conflicting lock is held" errors on the next start. * Safe to call more than once; subsequent calls are no-ops. */ close(): Promise; } //# sourceMappingURL=index.d.ts.map