import type { DateTime } from 'luxon'; import type { IDataObject, INodeExecutionData } from 'n8n-workflow'; import type * as oracleDBTypes from 'oracledb'; export type QueryMode = 'single' | 'transaction' | 'independently'; export type ObjectQueryValue = Extract>; export type QueryValue = ObjectQueryValue | oracleDBTypes.BindParameters; export type QueryWithValues = { query: string; values?: QueryValue; executeManyValues?: QueryValue[]; outputColumns?: string[]; }; export type WhereClause = { column: string; condition: string; value: any; }; export type SortRule = { column: string; direction: string; }; export type ColumnInfo = { columnName: string; dataType: string; isNullable: boolean; udtName?: string; columnDefault?: string | null; isGenerated?: 'ALWAYS' | 'NEVER'; identityGeneration?: 'ALWAYS' | 'NEVER'; maxSize: number; }; export type QueriesRunner = (queries: QueryWithValues[], items: INodeExecutionData[], options: IDataObject) => Promise; export type OracleDBNodeOptions = { nodeVersion?: number; operation?: string; poolPingInterval?: number; poolPingTimeout?: number; stmtCacheSize?: number; poolMax?: number; poolMin?: number; poolIncrement?: number; autoCommit?: boolean; bindDefs?: oracleDBTypes.BindDefinition[]; batchErrors?: boolean; fetchArraySize?: number; keepInStmtCache?: boolean; maxRows?: number; prefetchRows?: number; largeNumbersOutputAsString?: boolean; outputColumns?: string[]; stmtBatching?: QueryMode; executeManyOptions?: oracleDBTypes.ExecuteManyOptions; }; export type OracleDBNodeCredentials = { connectionString: string | undefined; connectionClass?: string; connectTimeout?: number; useThickMode: boolean; useSSL: boolean; expireTime?: number; maxLifetimeSession: number; password: string | undefined; poolTimeout: number; poolMin: number; poolMax: number; poolIncrement: number; privilege?: number; sslServerCertDN?: string; sslServerDNMatch?: boolean; sslAllowWeakDNMatch?: boolean; transportConnectTimeout?: number; user: string | undefined; walletPassword?: string | undefined; walletContent?: string | undefined; }; export type ColumnDefinition = { type: string; nullable: boolean; maxSize: number; }; export type ColumnMap = { [key: string]: ColumnDefinition; }; type BaseBindFields = { name: string; parseInStatement: boolean; bindDirection: 'in' | 'out' | 'inout'; }; export type ExecuteOpBindParam = (BaseBindFields & { datatype: 'string'; valueString: string; }) | (BaseBindFields & { datatype: 'number'; valueNumber: number; }) | (BaseBindFields & { datatype: 'boolean'; valueBoolean: boolean; }) | (BaseBindFields & { datatype: 'date'; valueDate: string | Date | DateTime | null; }) | (BaseBindFields & { datatype: 'json'; valueJson: Record | null; }) | (BaseBindFields & { datatype: 'vector'; valueVector: number[] | null; }) | (BaseBindFields & { datatype: 'blob'; valueBlob: Buffer | null; }) | (BaseBindFields & { datatype: 'sparse'; valueSparse: { dimensions: number; indices: number[]; values: number[]; }; }); export interface TableColumnRow { COLUMN_NAME: string; DATA_TYPE: string; DATA_LENGTH: number; CHAR_LENGTH: number; DEFAULT_LENGTH: number | null; NULLABLE: 'Y' | 'N'; IDENTITY_COLUMN?: 'YES' | 'NO'; HAS_DEFAULT: 'YES' | 'NO'; CONSTRAINT_TYPES?: string | null; } export {}; //# sourceMappingURL=interfaces.d.ts.map