import { DuckDBService } from '../duckdb/service.js'; import { MCPClient } from './MCPClient.js'; import { MappedResource } from './ResourceMapper.js'; /** * Configuration for virtual tables */ export interface VirtualTableConfig { autoRefresh?: boolean; refreshInterval?: number; lazyLoad?: boolean; maxRows?: number; } /** * Represents a virtual table backed by an MCP resource */ export interface VirtualTable { name: string; resourceUri: string; serverAlias?: string; config: VirtualTableConfig; metadata: MappedResource; refreshTimer?: ReturnType; } /** * Manages virtual tables that are backed by MCP resources */ export declare class VirtualTableManager { private virtualTables; private duckdb; private mcpClient; private resourceMapper; constructor(duckdb: DuckDBService, mcpClient: MCPClient); /** * Create a virtual table from an MCP resource */ createVirtualTable(tableName: string, resourceUri: string, serverAlias?: string, config?: VirtualTableConfig): Promise; /** * Load a lazy-loaded virtual table */ loadVirtualTable(tableName: string): Promise; /** * Refresh a virtual table with latest data */ refreshVirtualTable(tableName: string): Promise; /** * Drop a virtual table */ dropVirtualTable(tableName: string): Promise; /** * Get virtual table information */ getVirtualTable(tableName: string): VirtualTable | undefined; /** * List all virtual tables */ listVirtualTables(): VirtualTable[]; /** * Execute a hybrid query across local and virtual tables */ executeHybridQuery(sql: string): Promise; /** * Create a materialized view from a virtual table */ materializeVirtualTable(virtualTableName: string, materializedName: string): Promise; /** * Update virtual table configuration */ updateVirtualTableConfig(tableName: string, config: Partial): void; /** * Clean up all virtual tables */ cleanup(): Promise; } //# sourceMappingURL=VirtualTable.d.ts.map