/**
 * @fileoverview Public barrel for the DataCanvas primitive. Servers import
 * from `@cyanheads/mcp-ts-core/canvas` to interact with `core.canvas` —
 * either via tool handlers (acquire → register → query → export) or directly
 * for advanced lifecycle work.
 *
 * The DuckDB provider is lazy-loaded; pulling this barrel does not pull in
 * `@duckdb/node-api` until {@link DataCanvas.acquire} runs against an active
 * canvas configuration.
 *
 * @module src/services/canvas/index
 */
export { CanvasInstance } from './core/CanvasInstance.js';
export { CanvasRegistry, DEFAULT_CANVAS_REGISTRY_OPTIONS, } from './core/CanvasRegistry.js';
export { createCanvasService } from './core/canvasFactory.js';
export { DataCanvas } from './core/DataCanvas.js';
export { inferSchemaFromRows } from './core/schemaSniffer.js';
export { ALLOWED_PLAN_OPERATORS, ALLOWED_STATEMENT_TYPES, assertNoDeniedFunctions, assertNoSystemCatalogs, assertReadOnlyQuery, assertValidIdentifier, CANVAS_IDENTIFIER_REGEX, collectDisallowedOperators, collectPlanViolations, DENIED_TABLE_FUNCTIONS, quoteIdentifier, SQL_GATE_REASONS, } from './core/sqlGate.js';
export { DuckdbProvider, } from './providers/duckdb/DuckdbProvider.js';
export { spillover, } from './spillover.js';
//# sourceMappingURL=index.js.map