/**
 * @fileoverview Manages DuckDB instance and connection lifecycle.
 * @module services/duck-db/duckDBConnectionManager
 */
import * as duckdb from "@duckdb/node-api";
import { RequestContext } from "../../utils/index.js";
import { DuckDBServiceConfig } from "./types.js";
export declare class DuckDBConnectionManager {
    private dbInstance;
    private dbConnection;
    private isInitialized;
    private currentConfig;
    /**
     * Initializes the DuckDB instance and connection.
     * @param {DuckDBServiceConfig} [config] - Configuration for the service.
     * @returns {Promise<void>}
     */
    initialize(config?: DuckDBServiceConfig): Promise<void>;
    /**
     * Installs and loads a DuckDB extension.
     * @param {string} extensionName - The name of the extension.
     * @param {RequestContext} parentContext - The parent request context.
     * @returns {Promise<void>}
     */
    loadExtension(extensionName: string, parentContext: RequestContext): Promise<void>;
    /**
     * Closes the DuckDB connection and instance.
     * @returns {Promise<void>}
     */
    close(): Promise<void>;
    /**
     * Ensures that the service is initialized.
     * @param {RequestContext} context - The request context for error reporting.
     * @throws {McpError} If the service is not initialized.
     */
    ensureInitialized(context: RequestContext): void;
    /**
     * Gets the underlying DuckDB connection object.
     * @returns {duckdb.DuckDBConnection}
     * @throws {McpError} If the service is not initialized.
     */
    getConnection(): duckdb.DuckDBConnection;
    /**
     * Gets the underlying DuckDB instance object.
     * @returns {duckdb.DuckDBInstance}
     * @throws {McpError} If the service is not initialized.
     */
    getInstance(): duckdb.DuckDBInstance;
    /**
     * Checks if the service is currently initialized.
     * @returns {boolean} True if initialized, false otherwise.
     */
    get isServiceInitialized(): boolean;
}
