import { DateDifUnitParam } from '../../constants/interfaces';
export declare function toDate(value: string): string;
export declare const setTimezoneToColumnDate: string;
export declare const dateFormatScript: string;
export declare const dayScript: (value: any) => string;
export declare const monthScript: (value: any) => string;
export declare const yearScript: (value: any) => string;
export declare const hourScript: (value: any, timeFormat?: string) => string;
export declare const minuteScript: (value: any) => string;
export declare const secondScript: (value: any) => string;
/**
 * Extracts the nanosecond value from a given date and divides it by 1,000,000.
 */
export declare const millisecondScript: (value: any) => string;
export declare function dateDif(start: any, end: any, unit: DateDifUnitParam): string;
export declare const getValueScript = "def GET_VALUE(def c){return (c.empty ? null : c.value)}";
export declare const isNullScript = "def IS_NULL_SCRIPT(def value, def replacement) { return value ?: replacement; }";
export declare const properScript = "String PROPER_STRING(String input) {\n    if (input == null) return null;\n    def str = input.toLowerCase();\n    def builder = new StringBuilder(str);\n    \n    def chartLists = [\" \", \"!\", \"\\\"\", \"#\", \"$\", \"%\", \"&\", \"'\", \"(\", \")\", \"*\", \"+\", \",\", \"-\", \".\", \"/\", \":\", \";\", \"<\", \"=\", \">\", \"?\", \"@\", \"[\", \"\\\\\", \"]\", \"^\", \"_\", \"`\", \"{\", \"|\", \"}\", \"~\"];\n    \n    boolean flag = true;\n    \n    for(int i = 0; i < builder.length(); i++) {\n      String ch = builder.charAt(i).toString();\n      if (flag) { \n        builder.replace(i, i + 1, ch.toUpperCase());\n        flag = false;\n      }\n      flag = chartLists.contains(ch);\n    }\n    return builder.toString();\n  }";
export declare const greatestScript = "def GREATEST(def numbers) {\n  def max;\n  if (numbers[0] instanceof ZonedDateTime) {\n    max = numbers[0];\n    if (max === null) return null;\n    for (int i = 1; i < numbers.length; i++) {\n      if (numbers[i] === null) return null;\n      def current = numbers[i];\n      if (current.isAfter(max)) {\n        max = current;\n      }\n    }\n    return max;\n  } else {\n    max = numbers[0];\n    if (max === null) return null;\n    for (int i = 1; i < numbers.length; i++) {\n      if (numbers[i] === null) return null;\n      if (numbers[i] > max) {\n        max = numbers[i];\n      }\n    }\n    return max;\n  }\n}";
export declare const leastScript = "def LEAST(def numbers) {\n  def min;\n  if (numbers[0] instanceof ZonedDateTime) {\n    min = numbers[0];\n    if (min === null) return null;\n    for (int i = 1; i < numbers.length; i++) {\n      if (numbers[i] === null) return null;\n      def current = numbers[i];\n      if (current.isBefore(min)) {\n        min = current;\n      }\n    }\n    return min;\n  } else {\n    min = numbers[0];\n    if (min === null) return null;\n    for (int i = 1; i < numbers.length; i++) {\n      if (numbers[i] === null) return null;\n      if (numbers[i] < min) {\n        min = numbers[i];\n      }\n    }\n    return min;\n  }\n}";
export declare const lengthScript = "def LENGTH(def str){return str != null ? str.length() : 0}";
export declare const sqrtScript = "def SQRT(def num){return num == null || num < 0 ? null : Math.sqrt(num) }";
export declare const expScript = "def EXP(def num){return num != null ? Math.exp(num) : null}";
export declare const replaceScript = "def REPLACE(def str, def target, def replacement) {\n  if (str == null || target == null || replacement == null) return null;\n  if (target == '') return str;\n  return str.replace(target, replacement);\n}";
export declare const includeScript = "def INCLUDE(def str, def targetSearch) { if (str == null || targetSearch == null) return null; return str.contains(targetSearch);}";
export declare const evenScript = "def EVEN(def value) {\n  if (value == null) return null;\n  def _value = Math.abs(value);\n  def sign = value < 0 ? -1 : 1;\n  return ((long) Math.ceil(_value / 2.0) * 2) * sign;\n}";
export declare const logScript = "def LOG(def base, def value) {\n  if (base == null || value == null) return null;\n  if (base <= 1  || value <= 0) return null;\n  return (Math.log(value) / Math.log(base));\n}";
export declare const oddScript = "def ODD(def value) {\n  if (value == null) return null;\n  def _value = Math.abs(value);\n  def sign = value < 0 ? -1 : 1;\n  return ((long) Math.ceil((_value + 1)/ 2.0) * 2 - 1) * sign;\n}";
export declare const powerScript = "def POWER(def value, def numberToRaise) {\n  if (value == null || numberToRaise == null) return null;\n  if (value == 0  && numberToRaise < 0) return null;\n  return Math.pow(value, numberToRaise);\n}";
export declare const roundDownScript = "def ROUNDDOWN(def value, def places) {\n  if (value == null || places == null) return null;  \n  if (places > 10) places = 10;\n  if (places < 0) places = 0;\n  def _value = Math.abs(value);\n  def sign = value < 0 ? -1 : 1;\n  def scale = Math.pow(10, places);\n  return (Math.floor(_value * scale) / scale) * sign;\n}";
export declare const roundScript: string;
export declare const roundUpScript: string;
export declare const subStringScript: string;
export declare const textScript = "def TEXT(def v) { return v == null ? null : v.toString(); }";
export declare const nowScript: string;
