import { DEFAULT_LAYOUT_OPTIONS } from "./consts";
import { IJQuery, IRectlProperties, IItem, IGroup, IArrayFormat, IInfiniteGridItem } from "./types";
export declare function toArray(nodes: HTMLCollection): HTMLElement[];
export declare function toArray<T extends Node>(nodes: IArrayFormat<T>): T[];
export declare function matchHTML(html: string): RegExpMatchArray | null;
export declare function $(param: Window, multi?: false): Window;
export declare function $(param: string | HTMLElement | Array<string | HTMLElement> | IJQuery, multi: true): HTMLElement[];
export declare function $(param: string | HTMLElement | Array<string | HTMLElement> | IJQuery, multi?: false): HTMLElement;
export declare function $(param: string | HTMLElement | Window | IJQuery, multi?: false): HTMLElement | Window;
export declare function addEvent(element: Element | Window, type: string, handler: (...args: any[]) => any, eventListenerOptions?: boolean | {
    [key: string]: any;
}): void;
export declare function removeEvent(element: Element | Window, type: string, handler: (...args: any[]) => any): void;
export declare function addOnceEvent(element: Element, type: string, handler: (...args: any[]) => any, eventListenerOptions?: boolean | {
    [key: string]: any;
}): void;
export declare function scroll(el: HTMLElement | Window, horizontal?: boolean): number;
export declare function scrollTo(el: Window | Element, x: number, y: number): void;
export declare function scrollBy(el: Window | Element, x: number, y: number): void;
export declare function getStyle(el: Element): any;
export declare function innerWidth(el: Window | Document | HTMLElement): number;
export declare function innerHeight(el: Window | Document | HTMLElement): number;
export declare function outerWidth(el: Window | Document | HTMLElement): number;
export declare function outerHeight(el: Window | Document | HTMLElement): number;
export declare function getSize(el: HTMLElement): {
    width: number;
    height: number;
};
export declare const STYLE: {
    vertical: IRectlProperties;
    horizontal: IRectlProperties;
};
export declare function getStyleNames(isHorizontal: boolean): IRectlProperties;
export declare function assign<A, B>(target: A, source: B): A & B;
export declare function assign<A, B, C>(target: A, source1: B, source2: C): A & B & C;
export declare function assign<A, B, C, D>(target: A, source1: B, source2: C, source3: D): A & B & C & D;
export declare function assign(target: {
    [key: string]: any;
}, ...sources: Array<{
    [key: string]: any;
}>): {
    [key: string]: any;
};
export declare function assignOptions<A extends {
    [key: string]: any;
}, B extends {
    [key: string]: any;
}>(defaultOptions: A, options: B): typeof DEFAULT_LAYOUT_OPTIONS & A & B;
export declare function toZeroArray(outline?: number[]): number[];
export declare function cloneItems<T extends {
    [key: string]: any;
}>(items: T[]): ({} & T)[];
export declare function isJQuery(el: any): el is IJQuery;
export declare function isWindow(el: any): el is Window;
export declare function isDocument(el: Node): el is Document;
export declare function fill<T>(arr: T[], value: T): T[];
export declare function isUndefined(target: any): target is undefined;
export declare function find<T>(arr: T[], callback: (target: T) => any): T | null;
export declare function findLast<T>(arr: T[], callback: (target: T) => any): T | null;
export declare function categorize(newItems: IItem[]): IGroup[];
export declare function resetSize(item: IInfiniteGridItem): void;
export declare function makeItem(groupKey: string | number, el?: HTMLElement): {
    el: HTMLElement | undefined;
    groupKey: string | number;
    mounted: boolean;
    needUpdate: boolean;
    content: string;
    rect: {
        top: number;
        left: number;
    };
};
export declare function withInfiniteGridMethods(prototype: any, infinitegridName: string): void;
export declare function hasClass(element: HTMLElement, className: string): boolean;
export declare function addClass(element: HTMLElement, className: string): void;
export declare function isObject(value: any): value is object;
export declare function getRangeCost(value: number, range: number[]): number;
