import { z } from 'zod';
import { CredentialType } from '@bubblelab/shared-schemas';
export declare const SnowflakeColumnSchema: z.ZodObject<{
    name: z.ZodString;
    type: z.ZodString;
    nullable: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
    type: string;
    name: string;
    nullable?: boolean | undefined;
}, {
    type: string;
    name: string;
    nullable?: boolean | undefined;
}>;
export declare const SnowflakeParamsSchema: z.ZodDiscriminatedUnion<"operation", [z.ZodObject<{
    operation: z.ZodLiteral<"execute_sql">;
    statement: z.ZodString;
    database: z.ZodOptional<z.ZodString>;
    schema: z.ZodOptional<z.ZodString>;
    warehouse: z.ZodOptional<z.ZodString>;
    role: z.ZodOptional<z.ZodString>;
    timeout: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
    credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>;
}, "strip", z.ZodTypeAny, {
    timeout: number;
    operation: "execute_sql";
    statement: string;
    schema?: string | undefined;
    credentials?: Partial<Record<CredentialType, string>> | undefined;
    role?: string | undefined;
    database?: string | undefined;
    warehouse?: string | undefined;
}, {
    operation: "execute_sql";
    statement: string;
    schema?: string | undefined;
    credentials?: Partial<Record<CredentialType, string>> | undefined;
    timeout?: number | undefined;
    role?: string | undefined;
    database?: string | undefined;
    warehouse?: string | undefined;
}>, z.ZodObject<{
    operation: z.ZodLiteral<"list_databases">;
    credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>;
}, "strip", z.ZodTypeAny, {
    operation: "list_databases";
    credentials?: Partial<Record<CredentialType, string>> | undefined;
}, {
    operation: "list_databases";
    credentials?: Partial<Record<CredentialType, string>> | undefined;
}>, z.ZodObject<{
    operation: z.ZodLiteral<"list_schemas">;
    database: z.ZodString;
    credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>;
}, "strip", z.ZodTypeAny, {
    operation: "list_schemas";
    database: string;
    credentials?: Partial<Record<CredentialType, string>> | undefined;
}, {
    operation: "list_schemas";
    database: string;
    credentials?: Partial<Record<CredentialType, string>> | undefined;
}>, z.ZodObject<{
    operation: z.ZodLiteral<"list_tables">;
    database: z.ZodString;
    schema: z.ZodString;
    credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>;
}, "strip", z.ZodTypeAny, {
    schema: string;
    operation: "list_tables";
    database: string;
    credentials?: Partial<Record<CredentialType, string>> | undefined;
}, {
    schema: string;
    operation: "list_tables";
    database: string;
    credentials?: Partial<Record<CredentialType, string>> | undefined;
}>, z.ZodObject<{
    operation: z.ZodLiteral<"describe_table">;
    database: z.ZodString;
    schema: z.ZodString;
    table: z.ZodString;
    credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>;
}, "strip", z.ZodTypeAny, {
    schema: string;
    operation: "describe_table";
    table: string;
    database: string;
    credentials?: Partial<Record<CredentialType, string>> | undefined;
}, {
    schema: string;
    operation: "describe_table";
    table: string;
    database: string;
    credentials?: Partial<Record<CredentialType, string>> | undefined;
}>]>;
export declare const SnowflakeResultSchema: z.ZodDiscriminatedUnion<"operation", [z.ZodObject<{
    operation: z.ZodLiteral<"execute_sql">;
    success: z.ZodBoolean;
    columns: z.ZodOptional<z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        type: z.ZodString;
        nullable: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        type: string;
        name: string;
        nullable?: boolean | undefined;
    }, {
        type: string;
        name: string;
        nullable?: boolean | undefined;
    }>, "many">>;
    rows: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNull]>, "many">, "many">>;
    num_rows: z.ZodOptional<z.ZodNumber>;
    statement_handle: z.ZodOptional<z.ZodString>;
    error: z.ZodString;
}, "strip", z.ZodTypeAny, {
    error: string;
    success: boolean;
    operation: "execute_sql";
    rows?: (string | null)[][] | undefined;
    columns?: {
        type: string;
        name: string;
        nullable?: boolean | undefined;
    }[] | undefined;
    num_rows?: number | undefined;
    statement_handle?: string | undefined;
}, {
    error: string;
    success: boolean;
    operation: "execute_sql";
    rows?: (string | null)[][] | undefined;
    columns?: {
        type: string;
        name: string;
        nullable?: boolean | undefined;
    }[] | undefined;
    num_rows?: number | undefined;
    statement_handle?: string | undefined;
}>, z.ZodObject<{
    operation: z.ZodLiteral<"list_databases">;
    success: z.ZodBoolean;
    databases: z.ZodOptional<z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        owner: z.ZodOptional<z.ZodString>;
        created_on: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        name: string;
        owner?: string | undefined;
        created_on?: string | undefined;
    }, {
        name: string;
        owner?: string | undefined;
        created_on?: string | undefined;
    }>, "many">>;
    error: z.ZodString;
}, "strip", z.ZodTypeAny, {
    error: string;
    success: boolean;
    operation: "list_databases";
    databases?: {
        name: string;
        owner?: string | undefined;
        created_on?: string | undefined;
    }[] | undefined;
}, {
    error: string;
    success: boolean;
    operation: "list_databases";
    databases?: {
        name: string;
        owner?: string | undefined;
        created_on?: string | undefined;
    }[] | undefined;
}>, z.ZodObject<{
    operation: z.ZodLiteral<"list_schemas">;
    success: z.ZodBoolean;
    schemas: z.ZodOptional<z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        database_name: z.ZodOptional<z.ZodString>;
        owner: z.ZodOptional<z.ZodString>;
        created_on: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        name: string;
        owner?: string | undefined;
        created_on?: string | undefined;
        database_name?: string | undefined;
    }, {
        name: string;
        owner?: string | undefined;
        created_on?: string | undefined;
        database_name?: string | undefined;
    }>, "many">>;
    error: z.ZodString;
}, "strip", z.ZodTypeAny, {
    error: string;
    success: boolean;
    operation: "list_schemas";
    schemas?: {
        name: string;
        owner?: string | undefined;
        created_on?: string | undefined;
        database_name?: string | undefined;
    }[] | undefined;
}, {
    error: string;
    success: boolean;
    operation: "list_schemas";
    schemas?: {
        name: string;
        owner?: string | undefined;
        created_on?: string | undefined;
        database_name?: string | undefined;
    }[] | undefined;
}>, z.ZodObject<{
    operation: z.ZodLiteral<"list_tables">;
    success: z.ZodBoolean;
    tables: z.ZodOptional<z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        database_name: z.ZodOptional<z.ZodString>;
        schema_name: z.ZodOptional<z.ZodString>;
        kind: z.ZodOptional<z.ZodString>;
        rows: z.ZodOptional<z.ZodNumber>;
        created_on: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        name: string;
        rows?: number | undefined;
        created_on?: string | undefined;
        database_name?: string | undefined;
        schema_name?: string | undefined;
        kind?: string | undefined;
    }, {
        name: string;
        rows?: number | undefined;
        created_on?: string | undefined;
        database_name?: string | undefined;
        schema_name?: string | undefined;
        kind?: string | undefined;
    }>, "many">>;
    error: z.ZodString;
}, "strip", z.ZodTypeAny, {
    error: string;
    success: boolean;
    operation: "list_tables";
    tables?: {
        name: string;
        rows?: number | undefined;
        created_on?: string | undefined;
        database_name?: string | undefined;
        schema_name?: string | undefined;
        kind?: string | undefined;
    }[] | undefined;
}, {
    error: string;
    success: boolean;
    operation: "list_tables";
    tables?: {
        name: string;
        rows?: number | undefined;
        created_on?: string | undefined;
        database_name?: string | undefined;
        schema_name?: string | undefined;
        kind?: string | undefined;
    }[] | undefined;
}>, z.ZodObject<{
    operation: z.ZodLiteral<"describe_table">;
    success: z.ZodBoolean;
    columns: z.ZodOptional<z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        type: z.ZodString;
        nullable: z.ZodOptional<z.ZodBoolean>;
        default: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        primary_key: z.ZodOptional<z.ZodBoolean>;
        comment: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, "strip", z.ZodTypeAny, {
        type: string;
        name: string;
        default?: string | null | undefined;
        nullable?: boolean | undefined;
        comment?: string | null | undefined;
        primary_key?: boolean | undefined;
    }, {
        type: string;
        name: string;
        default?: string | null | undefined;
        nullable?: boolean | undefined;
        comment?: string | null | undefined;
        primary_key?: boolean | undefined;
    }>, "many">>;
    error: z.ZodString;
}, "strip", z.ZodTypeAny, {
    error: string;
    success: boolean;
    operation: "describe_table";
    columns?: {
        type: string;
        name: string;
        default?: string | null | undefined;
        nullable?: boolean | undefined;
        comment?: string | null | undefined;
        primary_key?: boolean | undefined;
    }[] | undefined;
}, {
    error: string;
    success: boolean;
    operation: "describe_table";
    columns?: {
        type: string;
        name: string;
        default?: string | null | undefined;
        nullable?: boolean | undefined;
        comment?: string | null | undefined;
        primary_key?: boolean | undefined;
    }[] | undefined;
}>]>;
export type SnowflakeResult = z.output<typeof SnowflakeResultSchema>;
export type SnowflakeParams = z.output<typeof SnowflakeParamsSchema>;
export type SnowflakeParamsInput = z.input<typeof SnowflakeParamsSchema>;
//# sourceMappingURL=snowflake.schema.d.ts.map