export type Geometry = { x: number; y: number; }; export type Type = { type: | 'DECIMAL' | 'TINY' | 'SHORT' | 'LONG' | 'FLOAT' | 'DOUBLE' | 'NULL' | 'TIMESTAMP' | 'TIMESTAMP2' | 'LONGLONG' | 'INT24' | 'DATE' | 'TIME' | 'TIME2' | 'DATETIME' | 'DATETIME2' | 'YEAR' | 'NEWDATE' | 'VARCHAR' | 'BIT' | 'VECTOR' | 'JSON' | 'NEWDECIMAL' | 'ENUM' | 'SET' | 'TINY_BLOB' | 'MEDIUM_BLOB' | 'LONG_BLOB' | 'BLOB' | 'VAR_STRING' | 'STRING' | 'GEOMETRY'; }; export type Field = Type & { length: number; db: string; table: string; name: string; string: (encoding?: BufferEncoding | string | undefined) => string | null; buffer: () => Buffer | null; geometry: () => Geometry | Geometry[] | null; }; export type Next = () => void; export type TypeCast = ((field: Field, next: Next) => any) | boolean;