import type { QueryBatch, QueryExecutionOptions, QueryResult } from './result-types.js'; export interface ConnectionConfig { driver: 'postgresql' | 'mysql' | 'sqlite' | 'bigquery' | 'snowflake' | 'duckdb' | 'mssql' | 'file' | 'redshift' | 'fabric' | 'clickhouse' | 'databricks' | 'athena' | 'trino'; host?: string; port?: number; database?: string; catalog?: string; username?: string; password?: string; token?: string; ssl?: boolean; filepath?: string; projectId?: string; account?: string; warehouse?: string; workgroup?: string; schema?: string; role?: string; region?: string; outputLocation?: string; httpPath?: string; privateKey?: string; privateKeyPath?: string; privateKeyPassphrase?: string; connectionString?: string; accessUrl?: string; application?: string; browserActionTimeout?: number; clientRequestMFAToken?: boolean; clientStoreTemporaryCredential?: boolean; clientSessionKeepAlive?: boolean; clientSessionKeepAliveHeartbeatFrequency?: number; credentialCacheDir?: string; keepAlive?: boolean; noProxy?: string; oauthAuthorizationUrl?: string; oauthClientId?: string; oauthClientSecret?: string; oauthRedirectUri?: string; oauthScope?: string; oauthTokenRequestUrl?: string; passcode?: string; passcodeInPassword?: boolean; proxyHost?: string; proxyPassword?: string; proxyPort?: number; proxyProtocol?: string; proxyUser?: string; queryTag?: string; timeout?: number; workloadIdentityProvider?: string; workloadIdentityAzureClientId?: string; workloadIdentityImpersonationPath?: string[]; waitTimeout?: string; byteLimit?: number; authMethod?: 'password' | 'key_pair' | 'external_browser' | 'mfa' | 'oauth' | 'oauth_authorization_code' | 'oauth_client_credentials' | 'programmatic_access_token' | 'workload_identity' | 'application_default' | 'service_account_key_file' | 'service_account_json' | 'aws_default' | 'aws_profile' | 'aws_access_key' | 'token'; authenticator?: string; keyFilename?: string; serviceAccountJson?: string; credentials?: Record; location?: string; accessKeyId?: string; secretAccessKey?: string; sessionToken?: string; profile?: string; moduleSearchPaths?: string[]; } export type DriverName = ConnectionConfig['driver']; export interface TableInfo { schema: string; name: string; type: string; } export interface ColumnInfo { schema: string; table: string; name: string; dataType: string; ordinalPosition: number; } export interface DatabaseConnector { readonly driverName: DriverName; connect(config: ConnectionConfig): Promise; execute(sql: string, params?: unknown[], options?: QueryExecutionOptions): Promise; stream?(sql: string, params?: unknown[], options?: QueryExecutionOptions): AsyncIterable; disconnect(): Promise; ping(): Promise; listTables?(): Promise; listColumns?(schema?: string, table?: string): Promise; } //# sourceMappingURL=connector.d.ts.map