interface Obj extends Object {
[key: string]: any
[key: number]: any
}
declare type UnexpectType =
| undefined
| null
| string
| number
| boolean
| Date
| Error
| RegExp
| FileList
| File
| Element
| Window
| Document
declare type ReferencedPath = string
declare type QuotePath = string
declare type CircularStructurePaths = [ReferencedPath, QuotePath]
interface CopyDomOptions {
/**
* Should clear selection after copy
*
* Default to false
* */
clearSelect?: boolean
/**
* Should cut the dom(like ) value after copy
*
* Default to false
* */
cut?: boolean
}
/**
* @param {Element} dom
* @param {Object} options - Optional
* @returns {Boolean}
* */
declare function copyDom(dom: Element, options?: CopyDomOptions): boolean
/**
* @param {String} text
* @return {Promise}
* */
declare function copyText(text: string): Promise
/**
* @description Deep copy, has the ability to deal nested loop
* */
declare function objectDeepCopy(obj: T): T
/**
* @description Deep copy, cannot deal nested loop
* */
declare function objectSimpleCopy(obj: Obj): any
/**
* @description Deep merge, cannot deal nested loop
* @return The first parameter object which has been merged
* */
declare function objectDeepMerge(
target: T,
...rest: T[]
): any
/**
* @description Returns the start dimension of the nested loop
* */
declare function isCircularStructure(obj: Obj): CircularStructurePaths | null
export {
CircularStructurePaths,
CopyDomOptions,
Obj,
QuotePath,
ReferencedPath,
UnexpectType,
copyDom,
copyText,
isCircularStructure,
objectDeepCopy,
objectDeepMerge,
objectSimpleCopy,
}