export type tSqlParams = any[] | Record; export interface iSerializedExpression { sql: string; isReference: boolean; isExpression: boolean; isSubSelect: boolean; } export interface iExpressionSerializerHooks { assertValidIdentifier(identifier: string, context: string): void; isReference(value: string): boolean; addParam?: (params: tSqlParams, column: string, value: any) => string; buildScalarSubSelect?: (subRequest: any, params: tSqlParams) => string; onAlias?: (alias: string) => void; isKnownFunction?: (functionName: string) => boolean; } export interface iExpressionSerializerOptions { hooks: iExpressionSerializerHooks; params?: tSqlParams; context: string; contextColumn?: string; } export declare const serializeSqlExpression: (value: any, opts: iExpressionSerializerOptions) => iSerializedExpression;