diff --git a/index.d.ts b/index.d.ts new file mode 100644 index 0000000..ac33dc3 --- /dev/null +++ b/index.d.ts @@ -0,0 +1,39 @@ +declare module "potpack" { + export interface PotpackBox { + w: number; + h: number; + /** + * X coordinate in the resulting container. + */ + x?: number; + /** + * Y coordinate in the resulting container. + */ + y?: number; + } + + interface PotpackStats { + /** + * Width of the resulting container. + */ + w: number; + /** + * Height of the resulting container. + */ + h: number; + /** + * The space utilization value (0 to 1). Higher is better. + */ + fill: number; + } + + /** + * Packs 2D rectangles into a near-square container. + * + * Mutates the {@link boxes} array: it's sorted by height, + * and box objects are augmented with `x`, `y` coordinates. + */ + const potpack: (boxes: PotpackBox[]) => PotpackStats; + + export default potpack; +} diff --git a/package.json b/package.json index 62938fe..50195f1 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "module": "index.mjs", "unpkg": "index.js", "jsdelivr": "index.js", + "types": "index.d.ts", "files": [ "index.mjs", "index.js"