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<ObservabilityStoreImpl['getFeatures']>;
    init(...args: Parameters<ObservabilityStoreImpl['init']>): ReturnType<ObservabilityStoreImpl['init']>;
    migrateSpans(...args: Parameters<ObservabilityStoreImpl['migrateSpans']>): ReturnType<ObservabilityStoreImpl['migrateSpans']>;
    dangerouslyClearAll(...args: Parameters<ObservabilityStoreImpl['dangerouslyClearAll']>): ReturnType<ObservabilityStoreImpl['dangerouslyClearAll']>;
    createSpan(...args: Parameters<ObservabilityStoreImpl['createSpan']>): ReturnType<ObservabilityStoreImpl['createSpan']>;
    updateSpan(...args: Parameters<ObservabilityStoreImpl['updateSpan']>): ReturnType<ObservabilityStoreImpl['updateSpan']>;
    getSpan(...args: Parameters<ObservabilityStoreImpl['getSpan']>): ReturnType<ObservabilityStoreImpl['getSpan']>;
    getSpans(...args: Parameters<ObservabilityStoreImpl['getSpans']>): ReturnType<ObservabilityStoreImpl['getSpans']>;
    getRootSpan(...args: Parameters<ObservabilityStoreImpl['getRootSpan']>): ReturnType<ObservabilityStoreImpl['getRootSpan']>;
    getTrace(...args: Parameters<ObservabilityStoreImpl['getTrace']>): ReturnType<ObservabilityStoreImpl['getTrace']>;
    getTraceLight(...args: Parameters<ObservabilityStoreImpl['getTraceLight']>): ReturnType<ObservabilityStoreImpl['getTraceLight']>;
    listTraces(...args: Parameters<ObservabilityStoreImpl['listTraces']>): ReturnType<ObservabilityStoreImpl['listTraces']>;
    listBranches(...args: Parameters<ObservabilityStoreImpl['listBranches']>): ReturnType<ObservabilityStoreImpl['listBranches']>;
    batchCreateSpans(...args: Parameters<ObservabilityStoreImpl['batchCreateSpans']>): ReturnType<ObservabilityStoreImpl['batchCreateSpans']>;
    batchUpdateSpans(...args: Parameters<ObservabilityStoreImpl['batchUpdateSpans']>): ReturnType<ObservabilityStoreImpl['batchUpdateSpans']>;
    batchDeleteTraces(...args: Parameters<ObservabilityStoreImpl['batchDeleteTraces']>): ReturnType<ObservabilityStoreImpl['batchDeleteTraces']>;
    batchCreateLogs(...args: Parameters<ObservabilityStoreImpl['batchCreateLogs']>): ReturnType<ObservabilityStoreImpl['batchCreateLogs']>;
    listLogs(...args: Parameters<ObservabilityStoreImpl['listLogs']>): ReturnType<ObservabilityStoreImpl['listLogs']>;
    batchCreateMetrics(...args: Parameters<ObservabilityStoreImpl['batchCreateMetrics']>): ReturnType<ObservabilityStoreImpl['batchCreateMetrics']>;
    listMetrics(...args: Parameters<ObservabilityStoreImpl['listMetrics']>): ReturnType<ObservabilityStoreImpl['listMetrics']>;
    getMetricAggregate(...args: Parameters<ObservabilityStoreImpl['getMetricAggregate']>): ReturnType<ObservabilityStoreImpl['getMetricAggregate']>;
    getMetricBreakdown(...args: Parameters<ObservabilityStoreImpl['getMetricBreakdown']>): ReturnType<ObservabilityStoreImpl['getMetricBreakdown']>;
    getMetricTimeSeries(...args: Parameters<ObservabilityStoreImpl['getMetricTimeSeries']>): ReturnType<ObservabilityStoreImpl['getMetricTimeSeries']>;
    getMetricPercentiles(...args: Parameters<ObservabilityStoreImpl['getMetricPercentiles']>): ReturnType<ObservabilityStoreImpl['getMetricPercentiles']>;
    getMetricNames(...args: Parameters<ObservabilityStoreImpl['getMetricNames']>): ReturnType<ObservabilityStoreImpl['getMetricNames']>;
    getMetricLabelKeys(...args: Parameters<ObservabilityStoreImpl['getMetricLabelKeys']>): ReturnType<ObservabilityStoreImpl['getMetricLabelKeys']>;
    getMetricLabelValues(...args: Parameters<ObservabilityStoreImpl['getMetricLabelValues']>): ReturnType<ObservabilityStoreImpl['getMetricLabelValues']>;
    getEntityTypes(...args: Parameters<ObservabilityStoreImpl['getEntityTypes']>): ReturnType<ObservabilityStoreImpl['getEntityTypes']>;
    getEntityNames(...args: Parameters<ObservabilityStoreImpl['getEntityNames']>): ReturnType<ObservabilityStoreImpl['getEntityNames']>;
    getServiceNames(...args: Parameters<ObservabilityStoreImpl['getServiceNames']>): ReturnType<ObservabilityStoreImpl['getServiceNames']>;
    getEnvironments(...args: Parameters<ObservabilityStoreImpl['getEnvironments']>): ReturnType<ObservabilityStoreImpl['getEnvironments']>;
    getTags(...args: Parameters<ObservabilityStoreImpl['getTags']>): ReturnType<ObservabilityStoreImpl['getTags']>;
    createScore(...args: Parameters<ObservabilityStoreImpl['createScore']>): ReturnType<ObservabilityStoreImpl['createScore']>;
    batchCreateScores(...args: Parameters<ObservabilityStoreImpl['batchCreateScores']>): ReturnType<ObservabilityStoreImpl['batchCreateScores']>;
    listScores(...args: Parameters<ObservabilityStoreImpl['listScores']>): ReturnType<ObservabilityStoreImpl['listScores']>;
    getScoreById(...args: Parameters<ObservabilityStoreImpl['getScoreById']>): ReturnType<ObservabilityStoreImpl['getScoreById']>;
    getScoreAggregate(...args: Parameters<ObservabilityStoreImpl['getScoreAggregate']>): ReturnType<ObservabilityStoreImpl['getScoreAggregate']>;
    getScoreBreakdown(...args: Parameters<ObservabilityStoreImpl['getScoreBreakdown']>): ReturnType<ObservabilityStoreImpl['getScoreBreakdown']>;
    getScoreTimeSeries(...args: Parameters<ObservabilityStoreImpl['getScoreTimeSeries']>): ReturnType<ObservabilityStoreImpl['getScoreTimeSeries']>;
    getScorePercentiles(...args: Parameters<ObservabilityStoreImpl['getScorePercentiles']>): ReturnType<ObservabilityStoreImpl['getScorePercentiles']>;
    createFeedback(...args: Parameters<ObservabilityStoreImpl['createFeedback']>): ReturnType<ObservabilityStoreImpl['createFeedback']>;
    batchCreateFeedback(...args: Parameters<ObservabilityStoreImpl['batchCreateFeedback']>): ReturnType<ObservabilityStoreImpl['batchCreateFeedback']>;
    listFeedback(...args: Parameters<ObservabilityStoreImpl['listFeedback']>): ReturnType<ObservabilityStoreImpl['listFeedback']>;
    getFeedbackAggregate(...args: Parameters<ObservabilityStoreImpl['getFeedbackAggregate']>): ReturnType<ObservabilityStoreImpl['getFeedbackAggregate']>;
    getFeedbackBreakdown(...args: Parameters<ObservabilityStoreImpl['getFeedbackBreakdown']>): ReturnType<ObservabilityStoreImpl['getFeedbackBreakdown']>;
    getFeedbackTimeSeries(...args: Parameters<ObservabilityStoreImpl['getFeedbackTimeSeries']>): ReturnType<ObservabilityStoreImpl['getFeedbackTimeSeries']>;
    getFeedbackPercentiles(...args: Parameters<ObservabilityStoreImpl['getFeedbackPercentiles']>): ReturnType<ObservabilityStoreImpl['getFeedbackPercentiles']>;
}
/** 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<void>;
}
//# sourceMappingURL=index.d.ts.map