import { z } from 'zod';
import type { Tool } from '@modelcontextprotocol/sdk/types.js';
export declare const Environment: z.ZodEnum<["local", "development", "staging", "production"]>;
export type Environment = z.infer<typeof Environment>;
export interface DatabaseConfig {
    host: string;
    user: string;
    password: string;
    database: string;
    ssl?: boolean;
    port?: number;
    connectionLimit?: number;
}
export declare const QueryParams: z.ZodObject<{
    sql: z.ZodString;
    environment: z.ZodEnum<["local", "development", "staging", "production"]>;
    timeout: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
}, "strip", z.ZodTypeAny, {
    sql: string;
    environment: "local" | "development" | "staging" | "production";
    timeout: number;
}, {
    sql: string;
    environment: "local" | "development" | "staging" | "production";
    timeout?: number | undefined;
}>;
export type QueryParameters = z.infer<typeof QueryParams>;
export declare const InfoParams: z.ZodObject<{
    environment: z.ZodEnum<["local", "development", "staging", "production"]>;
}, "strip", z.ZodTypeAny, {
    environment: "local" | "development" | "staging" | "production";
}, {
    environment: "local" | "development" | "staging" | "production";
}>;
export type InfoParameters = z.infer<typeof InfoParams>;
export interface QueryResult {
    rows: unknown[];
    fields: {
        name: string;
        type: string;
        length: number;
    }[];
    executionTime: number;
    rowCount: number;
}
export interface DatabaseInfo {
    version: string;
    status: string;
    variables: Record<string, string>;
    processlist: unknown[];
    databases: string[];
}
export interface DatabaseError extends Error {
    code?: string;
    errno?: number;
    sqlState?: string;
    sqlMessage?: string;
}
export interface MySQLTools {
    query: Tool;
    info: Tool;
    environments: Tool;
}
