'f'
mh-two-thousand-and-two
2024-04-12 26f2711ef9461961fb953e2b497bd314ef95e345
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
import { GenericCallback, ImageCallback } from '@jimp/core';
 
export interface FontChar {
  id: number;
  x: number;
  y: number;
  width: number;
  height: number;
  xoffset: number;
  yoffset: number;
  xadvance: number;
  page: number;
  chnl: number;
}
 
export interface FontInfo {
  face: string;
  size: number;
  bold: number;
  italic: number;
  charset: string;
  unicode: number;
  stretchH: number;
  smooth: number;
  aa: number;
  padding: [number, number, number, number];
  spacing: [number, number];
}
 
export interface FontCommon {
  lineHeight: number;
  base: number;
  scaleW: number;
  scaleH: number;
  pages: number;
  packed: number;
  alphaChnl: number;
  redChnl: number;
  greenChnl: number;
  blueChnl: number;
}
 
export interface Font {
  chars: {
    [char: string]: FontChar;
  };
  kernings: {
    [firstString: string]: {
      [secondString: string]: number;
    };
  };
  pages: string[];
  common: FontCommon;
  info: FontInfo;
}
 
type PrintableText =
  | any
  | {
  text: string;
  alignmentX: number;
  alignmentY: number;
};
 
interface PrintClass {
  // Text methods
  print(
    font: Font,
    x: number,
    y: number,
    text: PrintableText,
    cb?: ImageCallback<this>
  ): this;
  print(
    font: Font,
    x: number,
    y: number,
    text: PrintableText,
    maxWidth?: number,
    cb?: ImageCallback<this>
  ): this;
  print(
    font: Font,
    x: number,
    y: number,
    text: PrintableText,
    maxWidth?: number,
    maxHeight?: number,
    cb?: ImageCallback<this>
  ): this;
}
 
interface Print {
  constants: {
    measureText(font: Font, text: PrintableText): number;
    measureTextHeight(font: Font, text: PrintableText, maxWidth: number): number;
 
    // Font locations
    FONT_SANS_8_BLACK: string;
    FONT_SANS_10_BLACK: string;
    FONT_SANS_12_BLACK: string;
    FONT_SANS_14_BLACK: string;
    FONT_SANS_16_BLACK: string;
    FONT_SANS_32_BLACK: string;
    FONT_SANS_64_BLACK: string;
    FONT_SANS_128_BLACK: string;
 
    FONT_SANS_8_WHITE: string;
    FONT_SANS_16_WHITE: string;
    FONT_SANS_32_WHITE: string;
    FONT_SANS_64_WHITE: string;
    FONT_SANS_128_WHITE: string;
 
    loadFont(file: string): Promise<Font>;
    loadFont(file: string, cb: GenericCallback<Font, any, any>): Promise<never>;
  }
 
  class: PrintClass
}
 
export default function(): Print;