/** * Data helper tools for DuckDB MCP * Provides utilities for data profiling, sampling, and format conversion */ import { DuckDBService } from '../duckdb/service.js'; import { z } from 'zod'; type MinMaxValue = string | number | null; interface ColumnStats { name: string; type: string; null_count: number; distinct_count: number; min?: MinMaxValue; max?: MinMaxValue; avg?: number; } type ParquetRecord = Record; /** * Schema for json_to_parquet arguments */ export declare const JsonToParquetArgsSchema: z.ZodObject<{ json_data: z.ZodOptional, z.ZodString]>>; json_url: z.ZodOptional; output_path: z.ZodString; table_name: z.ZodOptional; }, z.core.$strip>; /** * Schema for profile_parquet arguments */ export declare const ProfileParquetArgsSchema: z.ZodObject<{ url: z.ZodString; columns: z.ZodOptional>; sample_size: z.ZodDefault; }, z.core.$strip>; /** * Schema for sample_parquet arguments */ export declare const SampleParquetArgsSchema: z.ZodObject<{ url: z.ZodString; method: z.ZodDefault>; n: z.ZodDefault; seed: z.ZodOptional; }, z.core.$strip>; /** * Convert JSON data to Parquet format * Supports both inline JSON arrays and URLs to JSON files */ export declare function handleJsonToParquet(args: unknown, duckdb: DuckDBService): Promise<{ success: boolean; output_path?: string; row_count?: number; file_size?: number; error?: string; }>; /** * Profile a parquet file - get statistics and samples */ export declare function handleProfileParquet(args: unknown, duckdb: DuckDBService): Promise<{ success: boolean; url?: string; row_count?: number; column_count?: number; columns?: ColumnStats[]; sample?: ParquetRecord[]; error?: string; }>; /** * Sample data from a parquet file */ export declare function handleSampleParquet(args: unknown, duckdb: DuckDBService): Promise<{ success: boolean; url?: string; method?: string; requested_rows?: number; actual_rows?: number; data?: ParquetRecord[]; error?: string; }>; /** * Tool definitions for MCP server registration */ export declare const dataHelperToolDefinitions: ({ name: string; description: string; inputSchema: { type: string; properties: { json_data: { type: string[]; description: string; }; json_url: { type: string; description: string; }; output_path: { type: string; description: string; }; table_name: { type: string; description: string; }; url?: undefined; columns?: undefined; sample_size?: undefined; method?: undefined; n?: undefined; seed?: undefined; }; required: string[]; }; } | { name: string; description: string; inputSchema: { type: string; properties: { url: { type: string; description: string; }; columns: { type: string; items: { type: string; }; description: string; }; sample_size: { type: string; description: string; default: number; }; json_data?: undefined; json_url?: undefined; output_path?: undefined; table_name?: undefined; method?: undefined; n?: undefined; seed?: undefined; }; required: string[]; }; } | { name: string; description: string; inputSchema: { type: string; properties: { url: { type: string; description: string; }; method: { type: string; enum: string[]; description: string; default: string; }; n: { type: string; description: string; default: number; }; seed: { type: string; description: string; }; json_data?: undefined; json_url?: undefined; output_path?: undefined; table_name?: undefined; columns?: undefined; sample_size?: undefined; }; required: string[]; }; })[]; /** * Export handlers map for easy integration */ export declare const dataHelperToolHandlers: { json_to_parquet: typeof handleJsonToParquet; profile_parquet: typeof handleProfileParquet; sample_parquet: typeof handleSampleParquet; }; export {}; //# sourceMappingURL=data-helper-tools.d.ts.map