declare module 'gnui' { export var getComponent: Function; export var util: Utils; export function ready(callback: Function): void; export function create(type: string, options?: GNUIOptionsInterface): GNCoreInstanceInterface; interface Utils { slideup(element: Node, duration: number): void; fadeout(element: Node, duration: number): void; attr(element: any, name: any, value?: any): any; hasAttr(element: any, name: string): any; removeAttr(element: any, name: string): any; data(element: any, attribute: string): any; addClass(element: any, ...args: any[]): any; removeClass(element: any, ...args: any[]): any; removeClasses(element: any, cls: string): any; replaceClass(element: any, ...args: any[]): any; hasClass(element: any, cls: string): any; toggleClass(element: any, ...args: any[]): any; hslToRgb([h, s, l]: Array): Array; hslToHex([h, s, l]: Array): string; hexToHsl(color: string): Array; rgbToHsl(color: string): Array; rgbToHex(color: Array): string; hexToRgb(color: string): Array; hexPrefix(hexCode: number): string; isHexPattern(color: string): boolean; contrastColor(hex: string): string; offset(element: any, coordinates?: any): any; position(element: any, parent?: any): any; $(selector: any, context?: any): any; $$(selector: any, context?: any): any; fragment(html: any): any; empty(element: any): any; html(parent: any, html?: any): any; text(parent: any, text?: any): any; val(parent: any, text?: any): any; prepend(parent: any, element: any): any; append(parent: any, element: any): any; before(ref: any, element: any): any; after(ref: any, element: any): any; remove(element: any): any; on(...args: any[]): Function; off(targets: Array | any, type: string, listener: any, useCapture: boolean): void; once(...args: any[]): any; trigger(targets: any[] | Node, event: string | Event, detail?: any): any; createEvent(e: string | Event, bubbles: boolean, cancelable: boolean, detail: any): any; toEventTargets(target: any): any; isTouch(e: any): any; getEventPos(e: any, prop: string): any; isVoidElement(element: any): any; isVisible(element: any): any; isInput(element: any): any; filter(element: any, selector: any): any; within(element: any, selector: any): any; hyphenate(str: string): any; camelize(str: string): any; trim(str: string): string; hasOwn(obj: any, key: any): any; isFunction(obj: any): boolean; isObject(obj: any): boolean; isArray(obj: any): boolean; isPlainObject(obj: any): boolean; isWindow(obj: any): boolean; isDocument(obj: any): boolean; isNode(obj: any): boolean; isElement(obj: any): boolean; isNodeCollection(obj: any): boolean; isString(value: any): boolean; isBoolean(value: any): boolean; isNumber(value: any): boolean; isNumeric(value: any): boolean; isEmpty(obj: any): boolean | number; isUndefined(value: any): boolean; isHtml(str: string): boolean | string[]; isDate(value: any): boolean; toBoolean(value: any): boolean | any; toFinite(value: any): number; toInteger(value: any): number; toNumber(value: any): number; getNumber(value: any): number; toFloat(value: any): number; toArray(value: string): string[]; toNode(element: any): HTMLElement; toNodes(element: any): any[]; toWindow(element: any): any; toList(value: any): any; toMs(time: any): any; toDate(value: any): Date; toJson(str: string): any; isEqual(value: any, other: any): any; normalizeMacFormat(mac: string): string; isMAC(macStr: string, sep?: string): boolean; isNetworkAndBroadcastAddr(ipStr: string): boolean; isIP(ipStr: string, version?: string, ipPattern?: string): boolean; isIPv4Pattern(ipStr: string, ipPattern?: string, isSubnetMask?: boolean): boolean; isIPv6Pattern(ipStr: string, ipPattern?: string): boolean; isIPv4(ipStr: string): boolean; isIPv4Exclusive(ipStr: string): boolean; isIPv6(ipStr: string): boolean; isCidrIPv4(ipStr: string): boolean; isCidrIPv6(ipStr: string): boolean; isRangeIPv4(ipStr: string): boolean; isRangeIPv6(ipStr: string): boolean; isLongRangeIPv4(ipStr: string): boolean; isLongRangeIPv6(ipStr: string): boolean; startsWith(str: string, search: string): any; endsWith(str: string, search: string): any; includes(obj: any, search: any): boolean; each(obj: any, cb: any): boolean; last(array: Array): any; clamp(number: number, min: number, max: number): any; extend(defaults: any, options: any): any; objExtends(...args: any[]): any; objClone(obj: any): any; sortBy(array: Array, prop: string): Array; removeBy(array: Array, predicate: Function): Array; uniqBy(array: Array, prop: string): Array; sumBy(array: Array, prop?: string): Number; random(min: number, max: number): number; drag(element: HTMLElement): void; dragLayout(element: HTMLElement, boundary: Array, events: { drag?: Function; dragStart?: Function; dragEnd?: Function }): Function; query(selector: any, context: any): any; queryAll(selector: any, context: any): any; find(selector: any, context: any): any; findAll(selector: any, context: any): any; matches(element: any, selector: any): any; closest(element: any, selector: any): any; parent(element: any): any; parents(element: any, selector?: any): any; children(element: any, selector?: any): any; next(element: any): any; prev(element: any): any; nextUntil(element: any, selector?: any): any; siblings(element: any, selector?: any): any; escape(css: any): string; isEquals(compareFrom: any, compareTo: any): boolean; style(element: any, name: keyof CSSStyleDeclaration, value?: any): any; styles(element: any, styles: { [key: string]: string | number }): void | any; removeStyle(element: any, name: string | Array): any; css(element: any, property: any, value?: any): any; getUnit(property: string, value: any): any; getStyles(element: any, pseudoElt?: any): any; getStyle(element: any, property: any, pseudoElt?: any): any; propName(name: string): any; scrollTop(element: any, top: number): void; scrollIntoView(element: any, offsetBy: number): any; scrollParents(element: any, overflowRe?: RegExp): any; getViewport(scrollElement: any): any; getCenterX(): number; getCenterY(): number; getPositionX(element: HTMLElement): number; getPositionY(element: HTMLElement): number; isIE: boolean; getBrowser(): string; getOS(): string; assign(target: any, ...args: Array): any; selInput: string; dayOfMonth(year: number, month: number): number; dateDiff(date1: string | number | Date, date2: string | number | Date): number; byteSize(orgValue: number): string | number; commaNum(num: number): string; parseBundle(text: string, locale: string): string; textToMultiLangs(text: string): { [key: string]: string }; formatString(str: string, args: string[]): string; copyToClipboard(text: string): void; generateUUID(): string; getByteSize(str: string): number; base64: Base64; } interface Base64 { base64UrlEncode(str: string): string; base64UrlDecode(str: string): string; } interface GNCoreInstanceInterface { $selector: any; $el: Node; $name: string; $options: GNUIOptionsInterface; _uid: string; _status?: string; $init(component: GNCoreInstanceInterface, options: GNUIOptionsInterface): void; $mount(component: GNCoreInstanceInterface, el: any): void; $reset(): void; $destroy(component: GNCoreInstanceInterface, removeEl: boolean): void; $create(component: GNCoreInstanceInterface, options: GNUIConfigInterface): void; $render(component: GNCoreInstanceInterface): void; $update(element: any, e: any): void; $stateBind(component: GNCoreInstanceInterface): void; $bind(component: GNCoreInstanceInterface, events?: any): void; $event(component: GNCoreInstanceInterface, name: string): void; appendTarget(): void; [propName: string]: any; // 임의의 프로퍼티 정의 } interface GNUIConfigInterface { target?: string | HTMLElement; name?: string; animation?: GNUIAnimation; align?: GNUIAlign | GNUIOrientation; color?: GNUIColor; data?: any; headers?: any[]; tipField?: string; childField?: string; size?: GNUISize; state?: GNUIState; style?: GNUIStyle; border?: GNUIBorder; width?: number | string; height?: number | string; bodyHeight?: string; scrollHeight?: number | string; icon?: string; orientation?: GNUIOrientation; orientationOptions?: GNUIOrientationOptions; space?: number; panel?: Array; timer?: any; source?: Array; flatData?: Array; hue?: number; saturation?: number; lightness?: number; hasConfirm?: boolean; hasCancel?: boolean; hasClose?: boolean; hasFigure?: boolean; hasSearch?: boolean; hasCheck?: boolean; hasOrder?: boolean; hasDelete?: boolean; checkCapturing?: boolean; isEllipsis?: boolean; fixHeader?: boolean; indeterminate?: boolean; isModal?: boolean; direction?: string; duration?: number; checked?: boolean; disabled?: boolean; contents?: string; tabIndex?: number; minPosition?: number; x?: number; y?: number; type?: string; draggable?: boolean; palette?: GNCoreInstanceInterface; value?: any; position?: number; parent?: GNCoreInstanceInterface; onClick?: Function; onConfirm?: Function; onSort?: Function; onSelect?: Function; onToggle?: Function; onCheckAll?: Function; onCheck?: Function; onDragEnd?: Function; onChange?: Function; textSets?: { [key: string]: string }; delegates?: { [key: string]: string }; [propName: string]: any; // 임의의 프로퍼티 정의 } interface GNUIOptionsInterface extends GNUIConfigInterface { onChange?: Function; } type GNUIAnimation = 'slideup' | 'fadeout'; type GNUIAlign = 'full' | 'left' | 'center' | 'right'; type GNUIOrientation = 'horizontal' | 'vertical'; type GNUIHorizontalColumns = number | 'auto-fit'; type GNUIStyle = 'inline-block' | 'full' | 'round'; type GNUIBorder = 'outline' | 'border' | 'stripe' | 'borderless'; type GNUIColor = '' | 'success' | 'warning' | 'danger' | 'info' | 'dark' | 'cancel' | 'link' | 'trans' | 'secondary' | 'mono' | 'guide' | 'invert' | 'plain'; type GNUISize = '' | 'small' | 'normal' | 'medium' | 'large'; type GNUIState = '' | 'hover' | 'focus' | 'active'; interface GNUIOrientationOptions { columns?: GNUIHorizontalColumns; gap?: number | string; minWidth?: number | string; } }