import type { IDataObject, INodeExecutionData } from 'n8n-workflow'; import type pgPromise from 'pg-promise'; import { type IFormattingOptions } from 'pg-promise'; import type pg from 'pg-promise/typescript/pg-subset'; export type QueryMode = 'single' | 'transaction' | 'independently'; export type QueryValue = string | number | IDataObject | string[]; export type QueryValues = QueryValue[]; export type QueryWithValues = { query: string; values?: QueryValues; options?: IFormattingOptions; }; export type WhereClause = { column: string; condition: string; value: string | number; }; export type SortRule = { column: string; direction: string; }; export type ColumnInfo = { column_name: string; data_type: string; is_nullable: string; udt_name?: string; column_default?: string | null; is_generated?: 'ALWAYS' | 'NEVER'; identity_generation?: 'ALWAYS' | 'NEVER'; character_maximum_length?: number; numeric_precision?: number; numeric_scale?: number; }; export type EnumInfo = { typname: string; enumlabel: string; }; export type FieldTypeMapping = { string: string[]; number: string[]; boolean: string[]; dateTime: string[]; object: string[]; options: string[]; array: string[]; binary: string[]; }; export declare const neonFieldTypeMapping: FieldTypeMapping; export type NeonClient = pgPromise.IMain<{}, pg.IClient>; export type NeonDatabase = pgPromise.IDatabase<{}, pg.IClient>; export type NeonConnectionParameters = pg.IConnectionParameters; export type NeonConnection = pgPromise.IConnected<{}, pg.IClient>; export type NeonConnectionsData = { db: NeonDatabase; client: NeonClient; }; export type QueriesRunner = (queries: QueryWithValues[], items: INodeExecutionData[], options: IDataObject) => Promise; export type NeonNodeOptions = { cascade?: boolean; operation?: string; queryMode?: QueryMode; queryParameters?: string | number | string[] | number[]; delayClosingIdleConnection?: number; outputLargeFormatNumberAs?: 'string' | 'number'; outputColumns?: string[]; replaceEmptyStrings?: boolean; skipOnConflict?: boolean; db?: NeonDatabase; branchName?: string; checkComputeStatus?: boolean; }; export type NeonNodeCredentials = { host: string; port: number; database: string; user: string; password: string; ssl: 'require' | 'allow'; };