interface Core {
  type(value: any): string;
  isNull(value: any): boolean;
  isPlainObject(value: any): boolean;
  isEmptyObject(value: any): boolean;
  isFunction(value: any): boolean;
  isNumeric(value: any): boolean;
  isArray(value: any): boolean;
  isBoolean(value: any): boolean;
  isDate(value: any): boolean;
  contain(value: string | number, arr: Array<string | number>, index: number): number;
  merge(first: object, second: object): object;
  trim(value: string): string;
  makeArray<T>(arr: any, results: Array<T>): any;
  isWindow(value: object): boolean;
  isArrayLike(value: object): boolean;
  unique(arr: Array<string | number>): Array<string | number>;
  findElementIndex(arr:Array<string|number|object>,ele:string|number|object):number;
  removeElement<T>(arr: Array<T>, value: T): Array<T>;
  copyDate(date: Date): Date;
  createCorrectDate(dateStr: string, arr: Array<number>): Date;
  dateFormat(format: string, date: Date): string;
  isLeapYear(date: Date): boolean;
  diffDate(flag: string, beginDate: Date, endDate: Date): number;
  dateDiff(flag: string, beginDate: Date, endDate: Date): number;
  getQuery(queryKey: string, target: string, pattern: RegExp): string;
}
interface CoreConstructor extends Core {
  new(): Core;
  readonly Core;
}
declare const Core: CoreConstructor;

export default Core;