diff --git a/imagesloaded/imagesloaded.d.ts b/imagesloaded/imagesloaded.d.ts new file mode 100644 index 000000000..31cd0b7a6 --- /dev/null +++ b/imagesloaded/imagesloaded.d.ts @@ -0,0 +1,53 @@ +// Type definitions for imagesLoaded 3.1.8+ +// Project: https://github.com/desandro/imagesloaded +// Definitions by: Chris Charabaruk +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// + +declare module ImagesLoaded { + type ElementSelector = Element | NodeList | Array | string; + + /** interface for an image currently loading or completed */ + interface LoadingImage { + img: HTMLImageElement; + isLoaded: boolean; + } + + interface ImagesLoadedCallback { + (instance?: ImagesLoaded): void; + } + + interface ImagesLoadedListener { + (instance: ImagesLoaded, image?: LoadingImage): void; + } + + interface ImagesLoaded { + new (elem: ElementSelector, callback: ImagesLoadedCallback): ImagesLoaded; + + images: Array; + + // event listeners + on(event: string, listener: ImagesLoadedListener): void; + off(event: string, listener: ImagesLoadedListener): void; + } + + interface ImagesLoadedConstructor { + /** + * Creates a new ImagesLoaded object with the provided callback + * @param elem Element, NodeList, Element array, or selector string for images to watch + * @param callback function triggered after all images have been loaded + */ + (elem: ElementSelector, callback?: ImagesLoadedCallback): ImagesLoaded; + } +} + +declare var imagesLoaded: ImagesLoaded.ImagesLoadedConstructor; + +declare module 'imagesloaded' { + export = imagesLoaded; +} + +interface JQuery { + imagesLoaded(callback?: ImagesLoaded.ImagesLoadedCallback): JQueryDeferred; +}