import { ServiceBubble } from '../../../types/service-bubble-class.js'; import type { BubbleContext } from '../../../types/bubble.js'; import { CredentialType } from '@bubblelab/shared-schemas'; import { type SnowflakeParamsInput, type SnowflakeResult } from './snowflake.schema.js'; /** * Snowflake Service Bubble * * Snowflake data warehouse integration using the SQL REST API with key-pair authentication. * * Features: * - Execute arbitrary SQL statements * - List databases, schemas, and tables * - Describe table column definitions * - Key-pair (RSA) JWT authentication — no token expiry * * Credential fields (multi-field): * - account (required): Account identifier (ORGNAME-ACCOUNTNAME from URL) * - username (required): Snowflake login username * - privateKey (required): RSA private key in PEM format * - privateKeyPassword (optional): Passphrase if key is encrypted * - warehouse (optional): Default warehouse * - database (optional): Default database * - schema (optional): Default schema * - role (optional): Default role */ export declare class SnowflakeBubble extends ServiceBubble> { static readonly type: "service"; static readonly service = "snowflake"; static readonly authType: "apikey"; static readonly bubbleName = "snowflake"; static readonly schema: import("zod").ZodDiscriminatedUnion<"operation", [import("zod").ZodObject<{ operation: import("zod").ZodLiteral<"execute_sql">; statement: import("zod").ZodString; database: import("zod").ZodOptional; schema: import("zod").ZodOptional; warehouse: import("zod").ZodOptional; role: import("zod").ZodOptional; timeout: import("zod").ZodDefault>; credentials: import("zod").ZodOptional, import("zod").ZodString>>; }, "strip", import("zod").ZodTypeAny, { timeout: number; operation: "execute_sql"; statement: string; credentials?: Partial> | undefined; schema?: string | undefined; role?: string | undefined; database?: string | undefined; warehouse?: string | undefined; }, { operation: "execute_sql"; statement: string; credentials?: Partial> | undefined; timeout?: number | undefined; schema?: string | undefined; role?: string | undefined; database?: string | undefined; warehouse?: string | undefined; }>, import("zod").ZodObject<{ operation: import("zod").ZodLiteral<"list_databases">; credentials: import("zod").ZodOptional, import("zod").ZodString>>; }, "strip", import("zod").ZodTypeAny, { operation: "list_databases"; credentials?: Partial> | undefined; }, { operation: "list_databases"; credentials?: Partial> | undefined; }>, import("zod").ZodObject<{ operation: import("zod").ZodLiteral<"list_schemas">; database: import("zod").ZodString; credentials: import("zod").ZodOptional, import("zod").ZodString>>; }, "strip", import("zod").ZodTypeAny, { operation: "list_schemas"; database: string; credentials?: Partial> | undefined; }, { operation: "list_schemas"; database: string; credentials?: Partial> | undefined; }>, import("zod").ZodObject<{ operation: import("zod").ZodLiteral<"list_tables">; database: import("zod").ZodString; schema: import("zod").ZodString; credentials: import("zod").ZodOptional, import("zod").ZodString>>; }, "strip", import("zod").ZodTypeAny, { schema: string; operation: "list_tables"; database: string; credentials?: Partial> | undefined; }, { schema: string; operation: "list_tables"; database: string; credentials?: Partial> | undefined; }>, import("zod").ZodObject<{ operation: import("zod").ZodLiteral<"describe_table">; database: import("zod").ZodString; schema: import("zod").ZodString; table: import("zod").ZodString; credentials: import("zod").ZodOptional, import("zod").ZodString>>; }, "strip", import("zod").ZodTypeAny, { table: string; schema: string; operation: "describe_table"; database: string; credentials?: Partial> | undefined; }, { table: string; schema: string; operation: "describe_table"; database: string; credentials?: Partial> | undefined; }>]>; static readonly resultSchema: import("zod").ZodDiscriminatedUnion<"operation", [import("zod").ZodObject<{ operation: import("zod").ZodLiteral<"execute_sql">; success: import("zod").ZodBoolean; columns: import("zod").ZodOptional; }, "strip", import("zod").ZodTypeAny, { type: string; name: string; nullable?: boolean | undefined; }, { type: string; name: string; nullable?: boolean | undefined; }>, "many">>; rows: import("zod").ZodOptional, "many">, "many">>; num_rows: import("zod").ZodOptional; statement_handle: import("zod").ZodOptional; error: import("zod").ZodString; }, "strip", import("zod").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; }>, import("zod").ZodObject<{ operation: import("zod").ZodLiteral<"list_databases">; success: import("zod").ZodBoolean; databases: import("zod").ZodOptional; created_on: import("zod").ZodOptional; }, "strip", import("zod").ZodTypeAny, { name: string; owner?: string | undefined; created_on?: string | undefined; }, { name: string; owner?: string | undefined; created_on?: string | undefined; }>, "many">>; error: import("zod").ZodString; }, "strip", import("zod").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; }>, import("zod").ZodObject<{ operation: import("zod").ZodLiteral<"list_schemas">; success: import("zod").ZodBoolean; schemas: import("zod").ZodOptional; owner: import("zod").ZodOptional; created_on: import("zod").ZodOptional; }, "strip", import("zod").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: import("zod").ZodString; }, "strip", import("zod").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; }>, import("zod").ZodObject<{ operation: import("zod").ZodLiteral<"list_tables">; success: import("zod").ZodBoolean; tables: import("zod").ZodOptional; schema_name: import("zod").ZodOptional; kind: import("zod").ZodOptional; rows: import("zod").ZodOptional; created_on: import("zod").ZodOptional; }, "strip", import("zod").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: import("zod").ZodString; }, "strip", import("zod").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; }>, import("zod").ZodObject<{ operation: import("zod").ZodLiteral<"describe_table">; success: import("zod").ZodBoolean; columns: import("zod").ZodOptional; default: import("zod").ZodOptional>; primary_key: import("zod").ZodOptional; comment: import("zod").ZodOptional>; }, "strip", import("zod").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: import("zod").ZodString; }, "strip", import("zod").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; }>]>; static readonly shortDescription = "Snowflake data warehouse integration for SQL queries and metadata"; static readonly longDescription = "\n Snowflake data warehouse integration using the SQL REST API with key-pair authentication.\n\n Features:\n - Execute arbitrary SQL statements against Snowflake\n - List databases, schemas, and tables\n - Describe table column definitions\n - Key-pair (RSA) JWT authentication \u2014 no token expiry, no refresh needed\n\n Use cases:\n - Run SQL queries to fetch data from Snowflake warehouses\n - Explore database metadata (databases, schemas, tables, columns)\n - Automate data pipeline operations\n - Build reports from Snowflake data\n "; static readonly alias = "snowflake"; constructor(params?: T, context?: BubbleContext, instanceId?: string); testCredential(): Promise; protected chooseCredential(): string | undefined; /** * Execute a SQL statement via the Snowflake SQL API. */ private executeStatement; protected performAction(context?: BubbleContext): Promise>; private executeSql; private listDatabases; private listSchemas; private listTables; private describeTable; } //# sourceMappingURL=snowflake.d.ts.map