ag-psd 30.2.0 → 31.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (252) hide show
  1. package/.v8-cache/v24.13.1-x64-cf738c9d/01e5e61b +0 -0
  2. package/.v8-cache/v24.13.1-x64-cf738c9d/05135617 +0 -0
  3. package/.v8-cache/v24.13.1-x64-cf738c9d/06423db9 +0 -0
  4. package/.v8-cache/v24.13.1-x64-cf738c9d/06e765df +0 -0
  5. package/.v8-cache/v24.13.1-x64-cf738c9d/0930679d +0 -0
  6. package/.v8-cache/v24.13.1-x64-cf738c9d/09519a62 +0 -0
  7. package/.v8-cache/v24.13.1-x64-cf738c9d/0a6607b0 +0 -0
  8. package/.v8-cache/v24.13.1-x64-cf738c9d/0ad8fa6e +0 -0
  9. package/.v8-cache/v24.13.1-x64-cf738c9d/0d390e10 +0 -0
  10. package/.v8-cache/v24.13.1-x64-cf738c9d/0dfa7b16 +0 -0
  11. package/.v8-cache/v24.13.1-x64-cf738c9d/0e9e09db +0 -0
  12. package/.v8-cache/v24.13.1-x64-cf738c9d/1130885f +0 -0
  13. package/.v8-cache/v24.13.1-x64-cf738c9d/1222cb8c +0 -0
  14. package/.v8-cache/v24.13.1-x64-cf738c9d/15e2c039 +0 -0
  15. package/.v8-cache/v24.13.1-x64-cf738c9d/1a2d469d +0 -0
  16. package/.v8-cache/v24.13.1-x64-cf738c9d/1b300c82 +0 -0
  17. package/.v8-cache/v24.13.1-x64-cf738c9d/1bc3d370 +0 -0
  18. package/.v8-cache/v24.13.1-x64-cf738c9d/1e44e5af +0 -0
  19. package/.v8-cache/v24.13.1-x64-cf738c9d/1efa10a1 +0 -0
  20. package/.v8-cache/v24.13.1-x64-cf738c9d/1f6c8743 +0 -0
  21. package/.v8-cache/v24.13.1-x64-cf738c9d/20b27e40 +0 -0
  22. package/.v8-cache/v24.13.1-x64-cf738c9d/257c62ba +0 -0
  23. package/.v8-cache/v24.13.1-x64-cf738c9d/25d60154 +0 -0
  24. package/.v8-cache/v24.13.1-x64-cf738c9d/26f822f3 +0 -0
  25. package/.v8-cache/v24.13.1-x64-cf738c9d/2a1e2a8d +0 -0
  26. package/.v8-cache/v24.13.1-x64-cf738c9d/2b02fded +0 -0
  27. package/.v8-cache/v24.13.1-x64-cf738c9d/2c76dc0d +0 -0
  28. package/.v8-cache/v24.13.1-x64-cf738c9d/2deb286a +0 -0
  29. package/.v8-cache/v24.13.1-x64-cf738c9d/32018e44 +0 -0
  30. package/.v8-cache/v24.13.1-x64-cf738c9d/341402c3 +0 -0
  31. package/.v8-cache/v24.13.1-x64-cf738c9d/34e0fa2e +0 -0
  32. package/.v8-cache/v24.13.1-x64-cf738c9d/3bbf643e +0 -0
  33. package/.v8-cache/v24.13.1-x64-cf738c9d/3ceff89e +0 -0
  34. package/.v8-cache/v24.13.1-x64-cf738c9d/404f5cdc +0 -0
  35. package/.v8-cache/v24.13.1-x64-cf738c9d/4087aa2b +0 -0
  36. package/.v8-cache/v24.13.1-x64-cf738c9d/4376c1f9 +0 -0
  37. package/.v8-cache/v24.13.1-x64-cf738c9d/44903df4 +0 -0
  38. package/.v8-cache/v24.13.1-x64-cf738c9d/44d58dc8 +0 -0
  39. package/.v8-cache/v24.13.1-x64-cf738c9d/4511bacf +0 -0
  40. package/.v8-cache/v24.13.1-x64-cf738c9d/47da0ce8 +0 -0
  41. package/.v8-cache/v24.13.1-x64-cf738c9d/48cd54a9 +0 -0
  42. package/.v8-cache/v24.13.1-x64-cf738c9d/4d938476 +0 -0
  43. package/.v8-cache/v24.13.1-x64-cf738c9d/4ec6d390 +0 -0
  44. package/.v8-cache/v24.13.1-x64-cf738c9d/4f5702bd +0 -0
  45. package/.v8-cache/v24.13.1-x64-cf738c9d/514cc428 +0 -0
  46. package/.v8-cache/v24.13.1-x64-cf738c9d/557d3b42 +0 -0
  47. package/.v8-cache/v24.13.1-x64-cf738c9d/56abbff7 +0 -0
  48. package/.v8-cache/v24.13.1-x64-cf738c9d/57b540ee +0 -0
  49. package/.v8-cache/v24.13.1-x64-cf738c9d/5e20c081 +0 -0
  50. package/.v8-cache/v24.13.1-x64-cf738c9d/651c4ada +0 -0
  51. package/.v8-cache/v24.13.1-x64-cf738c9d/652a0d59 +0 -0
  52. package/.v8-cache/v24.13.1-x64-cf738c9d/6a0e89ee +0 -0
  53. package/.v8-cache/v24.13.1-x64-cf738c9d/6af33b91 +0 -0
  54. package/.v8-cache/v24.13.1-x64-cf738c9d/6c2562d2 +0 -0
  55. package/.v8-cache/v24.13.1-x64-cf738c9d/6dae0cfa +0 -0
  56. package/.v8-cache/v24.13.1-x64-cf738c9d/6e2529ce +0 -0
  57. package/.v8-cache/v24.13.1-x64-cf738c9d/71df9cb3 +0 -0
  58. package/.v8-cache/v24.13.1-x64-cf738c9d/72e1d543 +0 -0
  59. package/.v8-cache/v24.13.1-x64-cf738c9d/75519c80 +0 -0
  60. package/.v8-cache/v24.13.1-x64-cf738c9d/79bf115c +0 -0
  61. package/.v8-cache/v24.13.1-x64-cf738c9d/7a39347c +0 -0
  62. package/.v8-cache/v24.13.1-x64-cf738c9d/7b83e3d3 +0 -0
  63. package/.v8-cache/v24.13.1-x64-cf738c9d/7cd71bc5 +0 -0
  64. package/.v8-cache/v24.13.1-x64-cf738c9d/7da78512 +0 -0
  65. package/.v8-cache/v24.13.1-x64-cf738c9d/7ea06cea +0 -0
  66. package/.v8-cache/v24.13.1-x64-cf738c9d/82c3b573 +0 -0
  67. package/.v8-cache/v24.13.1-x64-cf738c9d/84c186e4 +0 -0
  68. package/.v8-cache/v24.13.1-x64-cf738c9d/8607bd36 +0 -0
  69. package/.v8-cache/v24.13.1-x64-cf738c9d/87372817 +0 -0
  70. package/.v8-cache/v24.13.1-x64-cf738c9d/87cf2209 +0 -0
  71. package/.v8-cache/v24.13.1-x64-cf738c9d/882aaa05 +0 -0
  72. package/.v8-cache/v24.13.1-x64-cf738c9d/8a4d3de8 +0 -0
  73. package/.v8-cache/v24.13.1-x64-cf738c9d/8e223473 +0 -0
  74. package/.v8-cache/v24.13.1-x64-cf738c9d/92b7aefd +0 -0
  75. package/.v8-cache/v24.13.1-x64-cf738c9d/932f0770 +0 -0
  76. package/.v8-cache/v24.13.1-x64-cf738c9d/937c03a1 +0 -0
  77. package/.v8-cache/v24.13.1-x64-cf738c9d/991e4758 +0 -0
  78. package/.v8-cache/v24.13.1-x64-cf738c9d/9af658fb +0 -0
  79. package/.v8-cache/v24.13.1-x64-cf738c9d/9ed80ba5 +0 -0
  80. package/.v8-cache/v24.13.1-x64-cf738c9d/9f0dc993 +0 -0
  81. package/.v8-cache/v24.13.1-x64-cf738c9d/a19c0c4f +0 -0
  82. package/.v8-cache/v24.13.1-x64-cf738c9d/a6409d95 +0 -0
  83. package/.v8-cache/v24.13.1-x64-cf738c9d/a7e80865 +0 -0
  84. package/.v8-cache/v24.13.1-x64-cf738c9d/ac9802c6 +0 -0
  85. package/.v8-cache/v24.13.1-x64-cf738c9d/acc36e66 +0 -0
  86. package/.v8-cache/v24.13.1-x64-cf738c9d/ad11e2dc +0 -0
  87. package/.v8-cache/v24.13.1-x64-cf738c9d/b0c8fcd8 +0 -0
  88. package/.v8-cache/v24.13.1-x64-cf738c9d/b1762958 +0 -0
  89. package/.v8-cache/v24.13.1-x64-cf738c9d/b3c2fab7 +0 -0
  90. package/.v8-cache/v24.13.1-x64-cf738c9d/b5b3329b +0 -0
  91. package/.v8-cache/v24.13.1-x64-cf738c9d/b806679e +0 -0
  92. package/.v8-cache/v24.13.1-x64-cf738c9d/bc1cdd48 +0 -0
  93. package/.v8-cache/v24.13.1-x64-cf738c9d/bc7ebd1d +0 -0
  94. package/.v8-cache/v24.13.1-x64-cf738c9d/c0b789d2 +0 -0
  95. package/.v8-cache/v24.13.1-x64-cf738c9d/c314aece +0 -0
  96. package/.v8-cache/v24.13.1-x64-cf738c9d/c399a5dc +0 -0
  97. package/.v8-cache/v24.13.1-x64-cf738c9d/c681cbc8 +0 -0
  98. package/.v8-cache/v24.13.1-x64-cf738c9d/c6834ffc +0 -0
  99. package/.v8-cache/v24.13.1-x64-cf738c9d/c6f12ed5 +0 -0
  100. package/.v8-cache/v24.13.1-x64-cf738c9d/cb0f0a3d +0 -0
  101. package/.v8-cache/v24.13.1-x64-cf738c9d/cbcb7c95 +0 -0
  102. package/.v8-cache/v24.13.1-x64-cf738c9d/cdd9107c +0 -0
  103. package/.v8-cache/v24.13.1-x64-cf738c9d/cdf2c4a3 +0 -0
  104. package/.v8-cache/v24.13.1-x64-cf738c9d/cfc49f4f +0 -0
  105. package/.v8-cache/v24.13.1-x64-cf738c9d/cff9434a +0 -0
  106. package/.v8-cache/v24.13.1-x64-cf738c9d/d02dd6f7 +0 -0
  107. package/.v8-cache/v24.13.1-x64-cf738c9d/d0507bf3 +0 -0
  108. package/.v8-cache/v24.13.1-x64-cf738c9d/d60fce19 +0 -0
  109. package/.v8-cache/v24.13.1-x64-cf738c9d/d733d619 +0 -0
  110. package/.v8-cache/v24.13.1-x64-cf738c9d/d75b7803 +0 -0
  111. package/.v8-cache/v24.13.1-x64-cf738c9d/dc86f000 +0 -0
  112. package/.v8-cache/v24.13.1-x64-cf738c9d/defa4f7f +0 -0
  113. package/.v8-cache/v24.13.1-x64-cf738c9d/e03e2acd +0 -0
  114. package/.v8-cache/v24.13.1-x64-cf738c9d/e0e3f52c +0 -0
  115. package/.v8-cache/v24.13.1-x64-cf738c9d/e158d332 +0 -0
  116. package/.v8-cache/v24.13.1-x64-cf738c9d/e6735171 +0 -0
  117. package/.v8-cache/v24.13.1-x64-cf738c9d/e6745c2b +0 -0
  118. package/.v8-cache/v24.13.1-x64-cf738c9d/e6b99945 +0 -0
  119. package/.v8-cache/v24.13.1-x64-cf738c9d/e6d8ceb8 +0 -0
  120. package/.v8-cache/v24.13.1-x64-cf738c9d/e7ffec37 +0 -0
  121. package/.v8-cache/v24.13.1-x64-cf738c9d/ea33b6de +0 -0
  122. package/.v8-cache/v24.13.1-x64-cf738c9d/eaafa3c4 +0 -0
  123. package/.v8-cache/v24.13.1-x64-cf738c9d/ebb50fca +0 -0
  124. package/.v8-cache/v24.13.1-x64-cf738c9d/ec805f2e +0 -0
  125. package/.v8-cache/v24.13.1-x64-cf738c9d/edaef8f1 +0 -0
  126. package/.v8-cache/v24.13.1-x64-cf738c9d/ee4401c8 +0 -0
  127. package/.v8-cache/v24.13.1-x64-cf738c9d/eeeebdfe +0 -0
  128. package/.v8-cache/v24.13.1-x64-cf738c9d/f3d51676 +0 -0
  129. package/.v8-cache/v24.13.1-x64-cf738c9d/f7b50a75 +0 -0
  130. package/.v8-cache/v24.13.1-x64-cf738c9d/fa58ca72 +0 -0
  131. package/.v8-cache/v24.13.1-x64-cf738c9d/fc97d72d +0 -0
  132. package/.v8-cache/v24.13.1-x64-cf738c9d/fd0a2987 +0 -0
  133. package/CHANGELOG.md +9 -0
  134. package/README.md +64 -0
  135. package/TODO.md +2 -0
  136. package/dist/abr.d.ts +196 -196
  137. package/dist/abr.js +364 -365
  138. package/dist/abr.js.map +1 -1
  139. package/dist/additionalInfo.d.ts +26 -26
  140. package/dist/additionalInfo.js +3478 -3478
  141. package/dist/additionalInfo.js.map +1 -1
  142. package/dist/ase.d.ts +32 -32
  143. package/dist/ase.js +81 -82
  144. package/dist/ase.js.map +1 -1
  145. package/dist/bundle.js +12380 -12259
  146. package/dist/csh.d.ts +10 -10
  147. package/dist/csh.js +35 -36
  148. package/dist/csh.js.map +1 -1
  149. package/dist/descriptor.d.ts +601 -601
  150. package/dist/descriptor.js +2003 -2003
  151. package/dist/descriptor.js.map +1 -1
  152. package/dist/effectsHelpers.d.ts +5 -5
  153. package/dist/effectsHelpers.js +286 -287
  154. package/dist/effectsHelpers.js.map +1 -1
  155. package/dist/engineData.d.ts +2 -2
  156. package/dist/engineData.js +334 -335
  157. package/dist/engineData.js.map +1 -1
  158. package/dist/engineData2.d.ts +2 -2
  159. package/dist/engineData2.js +409 -410
  160. package/dist/engineData2.js.map +1 -1
  161. package/dist/helpers.d.ts +74 -74
  162. package/dist/helpers.js +353 -342
  163. package/dist/helpers.js.map +1 -1
  164. package/dist/imageResources.d.ts +17 -17
  165. package/dist/imageResources.js +1040 -1040
  166. package/dist/imageResources.js.map +1 -1
  167. package/dist/index.d.ts +20 -22
  168. package/dist/index.js +61 -56
  169. package/dist/index.js.map +1 -1
  170. package/dist/initializeCanvas.d.ts +1 -1
  171. package/dist/initializeCanvas.js +9 -10
  172. package/dist/initializeCanvas.js.map +1 -1
  173. package/dist/jpeg.d.ts +1 -1
  174. package/dist/jpeg.js +1020 -1021
  175. package/dist/jpeg.js.map +1 -1
  176. package/dist/psd.d.ts +1877 -1873
  177. package/dist/psd.js +45 -45
  178. package/dist/psd.js.map +1 -1
  179. package/dist/psdReader.d.ts +52 -45
  180. package/dist/psdReader.js +1385 -1282
  181. package/dist/psdReader.js.map +1 -1
  182. package/dist/psdWriter.d.ts +34 -34
  183. package/dist/psdWriter.js +834 -824
  184. package/dist/psdWriter.js.map +1 -1
  185. package/dist/text.d.ts +179 -179
  186. package/dist/text.js +552 -553
  187. package/dist/text.js.map +1 -1
  188. package/dist/utf8.d.ts +4 -6
  189. package/dist/utf8.js +156 -157
  190. package/dist/utf8.js.map +1 -1
  191. package/dist-es/abr.d.ts +196 -196
  192. package/dist-es/abr.js +364 -361
  193. package/dist-es/abr.js.map +1 -1
  194. package/dist-es/additionalInfo.d.ts +26 -26
  195. package/dist-es/additionalInfo.js +3478 -3472
  196. package/dist-es/additionalInfo.js.map +1 -1
  197. package/dist-es/ase.d.ts +32 -32
  198. package/dist-es/ase.js +81 -78
  199. package/dist-es/ase.js.map +1 -1
  200. package/dist-es/csh.d.ts +10 -10
  201. package/dist-es/csh.js +35 -32
  202. package/dist-es/csh.js.map +1 -1
  203. package/dist-es/descriptor.d.ts +601 -601
  204. package/dist-es/descriptor.js +2003 -1970
  205. package/dist-es/descriptor.js.map +1 -1
  206. package/dist-es/effectsHelpers.d.ts +5 -5
  207. package/dist-es/effectsHelpers.js +286 -282
  208. package/dist-es/effectsHelpers.js.map +1 -1
  209. package/dist-es/engineData.d.ts +2 -2
  210. package/dist-es/engineData.js +334 -330
  211. package/dist-es/engineData.js.map +1 -1
  212. package/dist-es/engineData2.d.ts +2 -2
  213. package/dist-es/engineData2.js +409 -406
  214. package/dist-es/engineData2.js.map +1 -1
  215. package/dist-es/helpers.d.ts +74 -74
  216. package/dist-es/helpers.js +353 -324
  217. package/dist-es/helpers.js.map +1 -1
  218. package/dist-es/imageResources.d.ts +17 -17
  219. package/dist-es/imageResources.js +1040 -1037
  220. package/dist-es/imageResources.js.map +1 -1
  221. package/dist-es/index.d.ts +20 -22
  222. package/dist-es/index.js +61 -33
  223. package/dist-es/index.js.map +1 -1
  224. package/dist-es/initializeCanvas.d.ts +1 -1
  225. package/dist-es/initializeCanvas.js +9 -6
  226. package/dist-es/initializeCanvas.js.map +1 -1
  227. package/dist-es/jpeg.d.ts +1 -1
  228. package/dist-es/jpeg.js +1020 -1017
  229. package/dist-es/jpeg.js.map +1 -1
  230. package/dist-es/psd.d.ts +1877 -1873
  231. package/dist-es/psd.js +45 -42
  232. package/dist-es/psd.js.map +1 -1
  233. package/dist-es/psdReader.d.ts +52 -45
  234. package/dist-es/psdReader.js +1385 -1244
  235. package/dist-es/psdReader.js.map +1 -1
  236. package/dist-es/psdWriter.d.ts +34 -34
  237. package/dist-es/psdWriter.js +834 -794
  238. package/dist-es/psdWriter.js.map +1 -1
  239. package/dist-es/text.d.ts +179 -179
  240. package/dist-es/text.js +552 -548
  241. package/dist-es/text.js.map +1 -1
  242. package/dist-es/utf8.d.ts +4 -6
  243. package/dist-es/utf8.js +156 -150
  244. package/dist-es/utf8.js.map +1 -1
  245. package/package.json +4 -3
  246. package/src/helpers.ts +13 -3
  247. package/src/index.ts +4 -6
  248. package/src/psd.ts +4 -0
  249. package/src/psdReader.ts +136 -43
  250. package/src/psdWriter.ts +42 -23
  251. package/tsconfig-es6.json +2 -1
  252. package/tsconfig.json +1 -0
package/dist/psd.d.ts CHANGED
@@ -1,1873 +1,1877 @@
1
- export type BlendMode = 'pass through' | 'normal' | 'dissolve' | 'darken' | 'multiply' | 'color burn' | 'linear burn' | 'darker color' | 'lighten' | 'screen' | 'color dodge' | 'linear dodge' | 'lighter color' | 'overlay' | 'soft light' | 'hard light' | 'vivid light' | 'linear light' | 'pin light' | 'hard mix' | 'difference' | 'exclusion' | 'subtract' | 'divide' | 'hue' | 'saturation' | 'color' | 'luminosity';
2
- export declare const enum ColorMode {
3
- Bitmap = 0,
4
- Grayscale = 1,
5
- Indexed = 2,
6
- RGB = 3,
7
- CMYK = 4,
8
- Multichannel = 7,
9
- Duotone = 8,
10
- Lab = 9
11
- }
12
- export declare const enum SectionDividerType {
13
- Other = 0,
14
- OpenFolder = 1,
15
- ClosedFolder = 2,
16
- BoundingSectionDivider = 3
17
- }
18
- export type RGBA = {
19
- r: number;
20
- g: number;
21
- b: number;
22
- a: number;
23
- };
24
- export type RGB = {
25
- r: number;
26
- g: number;
27
- b: number;
28
- };
29
- export type FRGB = {
30
- fr: number;
31
- fg: number;
32
- fb: number;
33
- };
34
- export type HSB = {
35
- h: number;
36
- s: number;
37
- b: number;
38
- };
39
- export type CMYK = {
40
- c: number;
41
- m: number;
42
- y: number;
43
- k: number;
44
- };
45
- export type LAB = {
46
- l: number;
47
- a: number;
48
- b: number;
49
- };
50
- export type Grayscale = {
51
- k: number;
52
- };
53
- export type Color = RGBA | RGB | FRGB | HSB | CMYK | LAB | Grayscale;
54
- export interface EffectContour {
55
- name: string;
56
- curve: {
57
- x: number;
58
- y: number;
59
- }[];
60
- }
61
- export interface EffectPattern {
62
- name: string;
63
- id: string;
64
- }
65
- export interface LayerEffectShadow {
66
- present?: boolean;
67
- showInDialog?: boolean;
68
- enabled?: boolean;
69
- size?: UnitsValue;
70
- angle?: number;
71
- distance?: UnitsValue;
72
- color?: Color;
73
- blendMode?: BlendMode;
74
- opacity?: number;
75
- useGlobalLight?: boolean;
76
- antialiased?: boolean;
77
- contour?: EffectContour;
78
- choke?: UnitsValue;
79
- layerConceals?: boolean;
80
- }
81
- export interface LayerEffectsOuterGlow {
82
- present?: boolean;
83
- showInDialog?: boolean;
84
- enabled?: boolean;
85
- size?: UnitsValue;
86
- color?: Color;
87
- blendMode?: BlendMode;
88
- opacity?: number;
89
- source?: GlowSource;
90
- antialiased?: boolean;
91
- noise?: number;
92
- range?: number;
93
- choke?: UnitsValue;
94
- jitter?: number;
95
- contour?: EffectContour;
96
- }
97
- export interface LayerEffectInnerGlow {
98
- present?: boolean;
99
- showInDialog?: boolean;
100
- enabled?: boolean;
101
- size?: UnitsValue;
102
- color?: Color;
103
- blendMode?: BlendMode;
104
- opacity?: number;
105
- source?: GlowSource;
106
- technique?: GlowTechnique;
107
- antialiased?: boolean;
108
- noise?: number;
109
- range?: number;
110
- choke?: UnitsValue;
111
- jitter?: number;
112
- contour?: EffectContour;
113
- }
114
- export interface LayerEffectBevel {
115
- present?: boolean;
116
- showInDialog?: boolean;
117
- enabled?: boolean;
118
- size?: UnitsValue;
119
- angle?: number;
120
- strength?: number;
121
- highlightBlendMode?: BlendMode;
122
- shadowBlendMode?: BlendMode;
123
- highlightColor?: Color;
124
- shadowColor?: Color;
125
- style?: BevelStyle;
126
- highlightOpacity?: number;
127
- shadowOpacity?: number;
128
- soften?: UnitsValue;
129
- useGlobalLight?: boolean;
130
- altitude?: number;
131
- technique?: BevelTechnique;
132
- direction?: BevelDirection;
133
- useTexture?: boolean;
134
- useShape?: boolean;
135
- antialiasGloss?: boolean;
136
- contour?: EffectContour;
137
- }
138
- export interface LayerEffectSolidFill {
139
- present?: boolean;
140
- showInDialog?: boolean;
141
- enabled?: boolean;
142
- blendMode?: BlendMode;
143
- color?: Color;
144
- opacity?: number;
145
- }
146
- export interface LayerEffectStroke {
147
- present?: boolean;
148
- showInDialog?: boolean;
149
- enabled?: boolean;
150
- overprint?: boolean;
151
- size?: UnitsValue;
152
- position?: 'inside' | 'center' | 'outside';
153
- fillType?: 'color' | 'gradient' | 'pattern';
154
- blendMode?: BlendMode;
155
- opacity?: number;
156
- color?: Color;
157
- gradient?: (EffectSolidGradient | EffectNoiseGradient) & ExtraGradientInfo;
158
- pattern?: EffectPattern & {};
159
- }
160
- export interface LayerEffectSatin {
161
- present?: boolean;
162
- showInDialog?: boolean;
163
- enabled?: boolean;
164
- size?: UnitsValue;
165
- blendMode?: BlendMode;
166
- color?: Color;
167
- antialiased?: boolean;
168
- opacity?: number;
169
- distance?: UnitsValue;
170
- invert?: boolean;
171
- angle?: number;
172
- contour?: EffectContour;
173
- }
174
- export interface LayerEffectPatternOverlay {
175
- present?: boolean;
176
- showInDialog?: boolean;
177
- enabled?: boolean;
178
- blendMode?: BlendMode;
179
- opacity?: number;
180
- scale?: number;
181
- pattern?: EffectPattern;
182
- phase?: {
183
- x: number;
184
- y: number;
185
- };
186
- align?: boolean;
187
- }
188
- export interface EffectSolidGradient {
189
- name: string;
190
- type: 'solid';
191
- smoothness?: number;
192
- colorStops: ColorStop[];
193
- opacityStops: OpacityStop[];
194
- }
195
- export interface EffectNoiseGradient {
196
- name: string;
197
- type: 'noise';
198
- roughness?: number;
199
- colorModel?: 'rgb' | 'hsb' | 'lab';
200
- randomSeed?: number;
201
- restrictColors?: boolean;
202
- addTransparency?: boolean;
203
- min: number[];
204
- max: number[];
205
- }
206
- export interface LayerEffectGradientOverlay {
207
- present?: boolean;
208
- showInDialog?: boolean;
209
- enabled?: boolean;
210
- blendMode?: string;
211
- opacity?: number;
212
- align?: boolean;
213
- scale?: number;
214
- dither?: boolean;
215
- reverse?: boolean;
216
- type?: GradientStyle;
217
- offset?: {
218
- x: number;
219
- y: number;
220
- };
221
- gradient?: EffectSolidGradient | EffectNoiseGradient;
222
- interpolationMethod?: InterpolationMethod;
223
- angle?: number;
224
- }
225
- export interface LayerEffectsInfo {
226
- disabled?: boolean;
227
- scale?: number;
228
- dropShadow?: LayerEffectShadow[];
229
- innerShadow?: LayerEffectShadow[];
230
- outerGlow?: LayerEffectsOuterGlow;
231
- innerGlow?: LayerEffectInnerGlow;
232
- bevel?: LayerEffectBevel;
233
- solidFill?: LayerEffectSolidFill[];
234
- satin?: LayerEffectSatin;
235
- stroke?: LayerEffectStroke[];
236
- gradientOverlay?: LayerEffectGradientOverlay[];
237
- patternOverlay?: LayerEffectPatternOverlay;
238
- }
239
- export type PixelArray = Uint8ClampedArray | Uint8Array | Uint16Array | Float32Array;
240
- export interface PixelData {
241
- data: PixelArray;
242
- width: number;
243
- height: number;
244
- }
245
- export interface LayerMaskData {
246
- top?: number;
247
- left?: number;
248
- bottom?: number;
249
- right?: number;
250
- defaultColor?: number;
251
- disabled?: boolean;
252
- positionRelativeToLayer?: boolean;
253
- fromVectorData?: boolean;
254
- userMaskDensity?: number;
255
- userMaskFeather?: number;
256
- vectorMaskDensity?: number;
257
- vectorMaskFeather?: number;
258
- canvas?: HTMLCanvasElement;
259
- imageData?: PixelData;
260
- }
261
- export type TextGridding = 'none' | 'round';
262
- export type Orientation = 'horizontal' | 'vertical';
263
- export type AntiAlias = 'none' | 'sharp' | 'crisp' | 'strong' | 'smooth' | 'platform' | 'platformLCD';
264
- export type WarpStyle = 'none' | 'arc' | 'arcLower' | 'arcUpper' | 'arch' | 'bulge' | 'shellLower' | 'shellUpper' | 'flag' | 'wave' | 'fish' | 'rise' | 'fisheye' | 'inflate' | 'squeeze' | 'twist' | 'custom' | 'cylinder';
265
- export type BevelStyle = 'outer bevel' | 'inner bevel' | 'emboss' | 'pillow emboss' | 'stroke emboss';
266
- export type BevelTechnique = 'smooth' | 'chisel hard' | 'chisel soft';
267
- export type BevelDirection = 'up' | 'down';
268
- export type GlowTechnique = 'softer' | 'precise';
269
- export type GlowSource = 'edge' | 'center';
270
- export type GradientStyle = 'linear' | 'radial' | 'angle' | 'reflected' | 'diamond';
271
- export type Justification = 'left' | 'right' | 'center' | 'justify-left' | 'justify-right' | 'justify-center' | 'justify-all';
272
- export type LineCapType = 'butt' | 'round' | 'square';
273
- export type LineJoinType = 'miter' | 'round' | 'bevel';
274
- export type LineAlignment = 'inside' | 'center' | 'outside';
275
- export type InterpolationMethod = 'classic' | 'perceptual' | 'linear' | 'smooth';
276
- export interface Warp {
277
- style?: WarpStyle;
278
- value?: number;
279
- values?: number[];
280
- perspective?: number;
281
- perspectiveOther?: number;
282
- rotate?: Orientation;
283
- bounds?: {
284
- top: UnitsValue;
285
- left: UnitsValue;
286
- bottom: UnitsValue;
287
- right: UnitsValue;
288
- };
289
- uOrder?: number;
290
- vOrder?: number;
291
- deformNumRows?: number;
292
- deformNumCols?: number;
293
- customEnvelopeWarp?: {
294
- quiltSliceX?: number[];
295
- quiltSliceY?: number[];
296
- meshPoints: {
297
- x: number;
298
- y: number;
299
- }[];
300
- };
301
- }
302
- export interface Animations {
303
- frames: {
304
- id: number;
305
- delay: number;
306
- dispose?: 'auto' | 'none' | 'dispose';
307
- }[];
308
- animations: {
309
- id: number;
310
- frames: number[];
311
- repeats?: number;
312
- activeFrame?: number;
313
- }[];
314
- }
315
- export interface Font {
316
- name: string;
317
- script?: number;
318
- type?: number;
319
- synthetic?: number;
320
- }
321
- export interface ParagraphStyle {
322
- justification?: Justification;
323
- firstLineIndent?: number;
324
- startIndent?: number;
325
- endIndent?: number;
326
- spaceBefore?: number;
327
- spaceAfter?: number;
328
- autoHyphenate?: boolean;
329
- hyphenatedWordSize?: number;
330
- preHyphen?: number;
331
- postHyphen?: number;
332
- consecutiveHyphens?: number;
333
- zone?: number;
334
- wordSpacing?: number[];
335
- letterSpacing?: number[];
336
- glyphSpacing?: number[];
337
- autoLeading?: number;
338
- leadingType?: number;
339
- hanging?: boolean;
340
- burasagari?: boolean;
341
- kinsokuOrder?: number;
342
- everyLineComposer?: boolean;
343
- }
344
- export interface ParagraphStyleRun {
345
- length: number;
346
- style: ParagraphStyle;
347
- }
348
- export interface TextStyle {
349
- font?: Font;
350
- fontSize?: number;
351
- fauxBold?: boolean;
352
- fauxItalic?: boolean;
353
- autoLeading?: boolean;
354
- leading?: number;
355
- horizontalScale?: number;
356
- verticalScale?: number;
357
- tracking?: number;
358
- autoKerning?: boolean;
359
- kerning?: number;
360
- baselineShift?: number;
361
- fontCaps?: number;
362
- fontBaseline?: number;
363
- underline?: boolean;
364
- strikethrough?: boolean;
365
- ligatures?: boolean;
366
- dLigatures?: boolean;
367
- baselineDirection?: number;
368
- tsume?: number;
369
- styleRunAlignment?: number;
370
- language?: number;
371
- noBreak?: boolean;
372
- fillColor?: Color;
373
- strokeColor?: Color;
374
- fillFlag?: boolean;
375
- strokeFlag?: boolean;
376
- fillFirst?: boolean;
377
- yUnderline?: number;
378
- outlineWidth?: number;
379
- characterDirection?: number;
380
- hindiNumbers?: boolean;
381
- kashida?: number;
382
- diacriticPos?: number;
383
- }
384
- export interface TextStyleRun {
385
- length: number;
386
- style: TextStyle;
387
- }
388
- export interface TextGridInfo {
389
- isOn?: boolean;
390
- show?: boolean;
391
- size?: number;
392
- leading?: number;
393
- color?: Color;
394
- leadingFillColor?: Color;
395
- alignLineHeightToGridFlags?: boolean;
396
- }
397
- export interface UnitsBounds {
398
- top: UnitsValue;
399
- left: UnitsValue;
400
- right: UnitsValue;
401
- bottom: UnitsValue;
402
- }
403
- export interface TextPath {
404
- name?: number[];
405
- bezierCurve?: {
406
- controlPoints: number[];
407
- };
408
- data: {
409
- type?: number;
410
- orientation?: number;
411
- frameMatrix: number[];
412
- textRange: number[];
413
- rowGutter?: number;
414
- columnGutter?: number;
415
- BaselineAlignment?: {
416
- flag?: number;
417
- min?: number;
418
- };
419
- pathData: {
420
- reversed?: boolean;
421
- spacing?: number;
422
- };
423
- };
424
- uuid?: string;
425
- }
426
- export interface LayerTextData {
427
- text: string;
428
- transform?: number[];
429
- antiAlias?: AntiAlias;
430
- gridding?: TextGridding;
431
- orientation?: Orientation;
432
- index?: number;
433
- warp?: Warp;
434
- top?: number;
435
- left?: number;
436
- bottom?: number;
437
- right?: number;
438
- gridInfo?: TextGridInfo;
439
- useFractionalGlyphWidths?: boolean;
440
- style?: TextStyle;
441
- styleRuns?: TextStyleRun[];
442
- paragraphStyle?: ParagraphStyle;
443
- paragraphStyleRuns?: ParagraphStyleRun[];
444
- superscriptSize?: number;
445
- superscriptPosition?: number;
446
- subscriptSize?: number;
447
- subscriptPosition?: number;
448
- smallCapSize?: number;
449
- shapeType?: 'point' | 'box';
450
- pointBase?: number[];
451
- boxBounds?: number[];
452
- bounds?: UnitsBounds;
453
- boundingBox?: UnitsBounds;
454
- /** This is read-only field, any changes will not be saved */
455
- textPath?: TextPath;
456
- }
457
- export interface PatternInfo {
458
- name: string;
459
- id: string;
460
- x: number;
461
- y: number;
462
- bounds: {
463
- x: number;
464
- y: number;
465
- w: number;
466
- h: number;
467
- };
468
- data: Uint8Array;
469
- }
470
- export interface BezierKnot {
471
- linked: boolean;
472
- points: number[];
473
- }
474
- export type BooleanOperation = 'exclude' | 'combine' | 'subtract' | 'intersect';
475
- export interface BezierPath {
476
- open: boolean;
477
- operation?: BooleanOperation;
478
- knots: BezierKnot[];
479
- fillRule: 'even-odd' | 'non-zero';
480
- }
481
- export interface ExtraGradientInfo {
482
- style?: GradientStyle;
483
- scale?: number;
484
- angle?: number;
485
- dither?: boolean;
486
- interpolationMethod?: InterpolationMethod;
487
- reverse?: boolean;
488
- align?: boolean;
489
- offset?: {
490
- x: number;
491
- y: number;
492
- };
493
- }
494
- export interface ExtraPatternInfo {
495
- linked?: boolean;
496
- phase?: {
497
- x: number;
498
- y: number;
499
- };
500
- }
501
- export type VectorContent = {
502
- type: 'color';
503
- color: Color;
504
- } | (EffectSolidGradient & ExtraGradientInfo) | (EffectNoiseGradient & ExtraGradientInfo) | (EffectPattern & {
505
- type: 'pattern';
506
- } & ExtraPatternInfo);
507
- export type RenderingIntent = 'perceptual' | 'saturation' | 'relative colorimetric' | 'absolute colorimetric';
508
- export type Units = 'Pixels' | 'Points' | 'Picas' | 'Millimeters' | 'Centimeters' | 'Inches' | 'None' | 'Density';
509
- export interface UnitsValue {
510
- units: Units;
511
- value: number;
512
- }
513
- export interface BrightnessAdjustment {
514
- type: 'brightness/contrast';
515
- brightness?: number;
516
- contrast?: number;
517
- meanValue?: number;
518
- useLegacy?: boolean;
519
- labColorOnly?: boolean;
520
- auto?: boolean;
521
- }
522
- export interface LevelsAdjustmentChannel {
523
- shadowInput: number;
524
- highlightInput: number;
525
- shadowOutput: number;
526
- highlightOutput: number;
527
- midtoneInput: number;
528
- }
529
- export interface PresetInfo {
530
- presetKind?: number;
531
- presetFileName?: string;
532
- }
533
- export interface LevelsAdjustment extends PresetInfo {
534
- type: 'levels';
535
- rgb?: LevelsAdjustmentChannel;
536
- red?: LevelsAdjustmentChannel;
537
- green?: LevelsAdjustmentChannel;
538
- blue?: LevelsAdjustmentChannel;
539
- }
540
- export type CurvesAdjustmentChannel = {
541
- input: number;
542
- output: number;
543
- }[];
544
- export interface CurvesAdjustment extends PresetInfo {
545
- type: 'curves';
546
- rgb?: CurvesAdjustmentChannel;
547
- red?: CurvesAdjustmentChannel;
548
- green?: CurvesAdjustmentChannel;
549
- blue?: CurvesAdjustmentChannel;
550
- }
551
- export interface ExposureAdjustment extends PresetInfo {
552
- type: 'exposure';
553
- exposure?: number;
554
- offset?: number;
555
- gamma?: number;
556
- }
557
- export interface VibranceAdjustment {
558
- type: 'vibrance';
559
- vibrance?: number;
560
- saturation?: number;
561
- }
562
- export interface HueSaturationAdjustmentChannel {
563
- a: number;
564
- b: number;
565
- c: number;
566
- d: number;
567
- hue: number;
568
- saturation: number;
569
- lightness: number;
570
- }
571
- export interface HueSaturationAdjustment extends PresetInfo {
572
- type: 'hue/saturation';
573
- master?: HueSaturationAdjustmentChannel;
574
- reds?: HueSaturationAdjustmentChannel;
575
- yellows?: HueSaturationAdjustmentChannel;
576
- greens?: HueSaturationAdjustmentChannel;
577
- cyans?: HueSaturationAdjustmentChannel;
578
- blues?: HueSaturationAdjustmentChannel;
579
- magentas?: HueSaturationAdjustmentChannel;
580
- }
581
- export interface ColorBalanceValues {
582
- cyanRed: number;
583
- magentaGreen: number;
584
- yellowBlue: number;
585
- }
586
- export interface ColorBalanceAdjustment {
587
- type: 'color balance';
588
- shadows?: ColorBalanceValues;
589
- midtones?: ColorBalanceValues;
590
- highlights?: ColorBalanceValues;
591
- preserveLuminosity?: boolean;
592
- }
593
- export interface BlackAndWhiteAdjustment extends PresetInfo {
594
- type: 'black & white';
595
- reds?: number;
596
- yellows?: number;
597
- greens?: number;
598
- cyans?: number;
599
- blues?: number;
600
- magentas?: number;
601
- useTint?: boolean;
602
- tintColor?: Color;
603
- }
604
- export interface PhotoFilterAdjustment {
605
- type: 'photo filter';
606
- color?: Color;
607
- density?: number;
608
- preserveLuminosity?: boolean;
609
- }
610
- export interface ChannelMixerChannel {
611
- red: number;
612
- green: number;
613
- blue: number;
614
- constant: number;
615
- }
616
- export interface ChannelMixerAdjustment extends PresetInfo {
617
- type: 'channel mixer';
618
- monochrome?: boolean;
619
- red?: ChannelMixerChannel;
620
- green?: ChannelMixerChannel;
621
- blue?: ChannelMixerChannel;
622
- gray?: ChannelMixerChannel;
623
- }
624
- export interface ColorLookupAdjustment {
625
- type: 'color lookup';
626
- lookupType?: '3dlut' | 'abstractProfile' | 'deviceLinkProfile';
627
- name?: string;
628
- dither?: boolean;
629
- profile?: Uint8Array;
630
- lutFormat?: 'look' | 'cube' | '3dl';
631
- dataOrder?: 'rgb' | 'bgr';
632
- tableOrder?: 'rgb' | 'bgr';
633
- lut3DFileData?: Uint8Array;
634
- lut3DFileName?: string;
635
- }
636
- export interface InvertAdjustment {
637
- type: 'invert';
638
- }
639
- export interface PosterizeAdjustment {
640
- type: 'posterize';
641
- levels?: number;
642
- }
643
- export interface ThresholdAdjustment {
644
- type: 'threshold';
645
- level?: number;
646
- }
647
- export interface ColorStop {
648
- color: Color;
649
- location: number;
650
- midpoint: number;
651
- }
652
- export interface OpacityStop {
653
- opacity: number;
654
- location: number;
655
- midpoint: number;
656
- }
657
- export interface GradientMapAdjustment {
658
- type: 'gradient map';
659
- name?: string;
660
- gradientType: 'solid' | 'noise';
661
- dither?: boolean;
662
- reverse?: boolean;
663
- method?: InterpolationMethod;
664
- smoothness?: number;
665
- colorStops?: ColorStop[];
666
- opacityStops?: OpacityStop[];
667
- roughness?: number;
668
- colorModel?: 'rgb' | 'hsb' | 'lab';
669
- randomSeed?: number;
670
- restrictColors?: boolean;
671
- addTransparency?: boolean;
672
- min?: number[];
673
- max?: number[];
674
- }
675
- export interface SelectiveColorAdjustment {
676
- type: 'selective color';
677
- mode?: 'relative' | 'absolute';
678
- reds?: CMYK;
679
- yellows?: CMYK;
680
- greens?: CMYK;
681
- cyans?: CMYK;
682
- blues?: CMYK;
683
- magentas?: CMYK;
684
- whites?: CMYK;
685
- neutrals?: CMYK;
686
- blacks?: CMYK;
687
- }
688
- export type LinkedFile = {
689
- id: string;
690
- name: string;
691
- type?: string;
692
- creator?: string;
693
- data?: Uint8Array;
694
- time?: string;
695
- descriptor?: {
696
- compInfo: {
697
- compID: number;
698
- originalCompID: number;
699
- };
700
- };
701
- childDocumentID?: string;
702
- assetModTime?: number;
703
- assetLockedState?: number;
704
- linkedFile?: {
705
- fileSize: number;
706
- name: string;
707
- fullPath: string;
708
- originalPath: string;
709
- relativePath: string;
710
- };
711
- };
712
- type FilterVariant = {
713
- type: 'average' | 'blur' | 'blur more';
714
- } | {
715
- type: 'box blur';
716
- filter: {
717
- radius: UnitsValue;
718
- };
719
- } | {
720
- type: 'gaussian blur';
721
- filter: {
722
- radius: UnitsValue;
723
- };
724
- } | {
725
- type: 'motion blur';
726
- filter: {
727
- angle: number;
728
- distance: UnitsValue;
729
- };
730
- } | {
731
- type: 'radial blur';
732
- filter: {
733
- amount: number;
734
- method: 'spin' | 'zoom';
735
- quality: 'draft' | 'good' | 'best';
736
- };
737
- } | {
738
- type: 'shape blur';
739
- filter: {
740
- radius: UnitsValue;
741
- customShape: {
742
- name: string;
743
- id: string;
744
- };
745
- };
746
- } | {
747
- type: 'smart blur';
748
- filter: {
749
- radius: number;
750
- threshold: number;
751
- quality: 'low' | 'medium' | 'high';
752
- mode: 'normal' | 'edge only' | 'overlay edge';
753
- };
754
- } | {
755
- type: 'surface blur';
756
- filter: {
757
- radius: UnitsValue;
758
- threshold: number;
759
- };
760
- } | {
761
- type: 'displace';
762
- filter: {
763
- horizontalScale: number;
764
- verticalScale: number;
765
- displacementMap: 'stretch to fit' | 'tile';
766
- undefinedAreas: 'wrap around' | 'repeat edge pixels';
767
- displacementFile: {
768
- signature: string;
769
- path: string;
770
- };
771
- };
772
- } | {
773
- type: 'pinch';
774
- filter: {
775
- amount: number;
776
- };
777
- } | {
778
- type: 'polar coordinates';
779
- filter: {
780
- conversion: 'rectangular to polar' | 'polar to rectangular';
781
- };
782
- } | {
783
- type: 'ripple';
784
- filter: {
785
- amount: number;
786
- size: 'small' | 'medium' | 'large';
787
- };
788
- } | {
789
- type: 'shear';
790
- filter: {
791
- shearPoints: {
792
- x: number;
793
- y: number;
794
- }[];
795
- shearStart: number;
796
- shearEnd: number;
797
- undefinedAreas: 'wrap around' | 'repeat edge pixels';
798
- };
799
- } | {
800
- type: 'spherize';
801
- filter: {
802
- amount: number;
803
- mode: 'normal' | 'horizontal only' | 'vertical only';
804
- };
805
- } | {
806
- type: 'twirl';
807
- filter: {
808
- angle: number;
809
- };
810
- } | {
811
- type: 'wave';
812
- filter: {
813
- numberOfGenerators: number;
814
- type: 'sine' | 'triangle' | 'square';
815
- wavelength: {
816
- min: number;
817
- max: number;
818
- };
819
- amplitude: {
820
- min: number;
821
- max: number;
822
- };
823
- scale: {
824
- x: number;
825
- y: number;
826
- };
827
- randomSeed: number;
828
- undefinedAreas: 'wrap around' | 'repeat edge pixels';
829
- };
830
- } | {
831
- type: 'zigzag';
832
- filter: {
833
- amount: number;
834
- ridges: number;
835
- style: 'around center' | 'out from center' | 'pond ripples';
836
- };
837
- } | {
838
- type: 'add noise';
839
- filter: {
840
- amount: number;
841
- distribution: 'uniform' | 'gaussian';
842
- monochromatic: boolean;
843
- randomSeed: number;
844
- };
845
- } | {
846
- type: 'despeckle';
847
- } | {
848
- type: 'dust and scratches';
849
- filter: {
850
- radius: number;
851
- threshold: number;
852
- };
853
- } | {
854
- type: 'median';
855
- filter: {
856
- radius: UnitsValue;
857
- };
858
- } | {
859
- type: 'reduce noise';
860
- filter: {
861
- preset: string;
862
- removeJpegArtifact: boolean;
863
- reduceColorNoise: number;
864
- sharpenDetails: number;
865
- channelDenoise: {
866
- channels: ('red' | 'green' | 'blue' | 'composite')[];
867
- amount: number;
868
- preserveDetails?: number;
869
- }[];
870
- };
871
- } | {
872
- type: 'color halftone';
873
- filter: {
874
- radius: number;
875
- angle1: number;
876
- angle2: number;
877
- angle3: number;
878
- angle4: number;
879
- };
880
- } | {
881
- type: 'crystallize';
882
- filter: {
883
- cellSize: number;
884
- randomSeed: number;
885
- };
886
- } | {
887
- type: 'facet' | 'fragment';
888
- } | {
889
- type: 'mezzotint';
890
- filter: {
891
- type: 'fine dots' | 'medium dots' | 'grainy dots' | 'coarse dots' | 'short lines' | 'medium lines' | 'long lines' | 'short strokes' | 'medium strokes' | 'long strokes';
892
- randomSeed: number;
893
- };
894
- } | {
895
- type: 'mosaic';
896
- filter: {
897
- cellSize: UnitsValue;
898
- };
899
- } | {
900
- type: 'pointillize';
901
- filter: {
902
- cellSize: number;
903
- randomSeed: number;
904
- };
905
- } | {
906
- type: 'clouds';
907
- filter: {
908
- randomSeed: number;
909
- };
910
- } | {
911
- type: 'difference clouds';
912
- filter: {
913
- randomSeed: number;
914
- };
915
- } | {
916
- type: 'fibers';
917
- filter: {
918
- variance: number;
919
- strength: number;
920
- randomSeed: number;
921
- };
922
- } | {
923
- type: 'lens flare';
924
- filter: {
925
- brightness: number;
926
- position: {
927
- x: number;
928
- y: number;
929
- };
930
- lensType: '50-300mm zoom' | '32mm prime' | '105mm prime' | 'movie prime';
931
- };
932
- } | {
933
- type: 'sharpen' | 'sharpen edges' | 'sharpen more';
934
- } | {
935
- type: 'smart sharpen';
936
- filter: {
937
- amount: number;
938
- radius: UnitsValue;
939
- threshold: number;
940
- angle: number;
941
- moreAccurate: boolean;
942
- blur: 'gaussian blur' | 'lens blur' | 'motion blur';
943
- preset: string;
944
- shadow: {
945
- fadeAmount: number;
946
- tonalWidth: number;
947
- radius: number;
948
- };
949
- highlight: {
950
- fadeAmount: number;
951
- tonalWidth: number;
952
- radius: number;
953
- };
954
- };
955
- } | {
956
- type: 'unsharp mask';
957
- filter: {
958
- amount: number;
959
- radius: UnitsValue;
960
- threshold: number;
961
- };
962
- } | {
963
- type: 'diffuse';
964
- filter: {
965
- mode: 'normal' | 'darken only' | 'lighten only' | 'anisotropic';
966
- randomSeed: number;
967
- };
968
- } | {
969
- type: 'emboss';
970
- filter: {
971
- angle: number;
972
- height: number;
973
- amount: number;
974
- };
975
- } | {
976
- type: 'extrude';
977
- filter: {
978
- type: 'blocks' | 'pyramids';
979
- size: number;
980
- depth: number;
981
- depthMode: 'random' | 'level-based';
982
- randomSeed: number;
983
- solidFrontFaces: boolean;
984
- maskIncompleteBlocks: boolean;
985
- };
986
- } | {
987
- type: 'find edges' | 'solarize';
988
- } | {
989
- type: 'tiles';
990
- filter: {
991
- numberOfTiles: number;
992
- maximumOffset: number;
993
- fillEmptyAreaWith: 'background color' | 'foreground color' | 'inverse image' | 'unaltered image';
994
- randomSeed: number;
995
- };
996
- } | {
997
- type: 'trace contour';
998
- filter: {
999
- level: number;
1000
- edge: 'lower' | 'upper';
1001
- };
1002
- } | {
1003
- type: 'wind';
1004
- filter: {
1005
- method: 'wind' | 'blast' | 'stagger';
1006
- direction: 'left' | 'right';
1007
- };
1008
- } | {
1009
- type: 'de-interlace';
1010
- filter: {
1011
- eliminate: 'odd lines' | 'even lines';
1012
- newFieldsBy: 'duplication' | 'interpolation';
1013
- };
1014
- } | {
1015
- type: 'ntsc colors';
1016
- } | {
1017
- type: 'custom';
1018
- filter: {
1019
- scale: number;
1020
- offset: number;
1021
- matrix: number[];
1022
- };
1023
- } | {
1024
- type: 'high pass' | 'maximum' | 'minimum';
1025
- filter: {
1026
- radius: UnitsValue;
1027
- };
1028
- } | {
1029
- type: 'offset';
1030
- filter: {
1031
- horizontal: number;
1032
- vertical: number;
1033
- undefinedAreas: 'set to transparent' | 'repeat edge pixels' | 'wrap around';
1034
- };
1035
- } | {
1036
- type: 'puppet';
1037
- filter: {
1038
- rigidType: boolean;
1039
- bounds: {
1040
- x: number;
1041
- y: number;
1042
- }[];
1043
- puppetShapeList: {
1044
- rigidType: boolean;
1045
- originalVertexArray: {
1046
- x: number;
1047
- y: number;
1048
- }[];
1049
- deformedVertexArray: {
1050
- x: number;
1051
- y: number;
1052
- }[];
1053
- indexArray: number[];
1054
- pinOffsets: {
1055
- x: number;
1056
- y: number;
1057
- }[];
1058
- posFinalPins: {
1059
- x: number;
1060
- y: number;
1061
- }[];
1062
- pinVertexIndices: number[];
1063
- selectedPin: number[];
1064
- pinPosition: {
1065
- x: number;
1066
- y: number;
1067
- }[];
1068
- pinRotation: number[];
1069
- pinOverlay: boolean[];
1070
- pinDepth: number[];
1071
- meshQuality: number;
1072
- meshExpansion: number;
1073
- meshRigidity: number;
1074
- imageResolution: number;
1075
- meshBoundaryPath: {
1076
- pathComponents: {
1077
- shapeOperation: string;
1078
- paths: {
1079
- closed: boolean;
1080
- points: {
1081
- anchor: {
1082
- x: UnitsValue;
1083
- y: UnitsValue;
1084
- };
1085
- forward: {
1086
- x: UnitsValue;
1087
- y: UnitsValue;
1088
- };
1089
- backward: {
1090
- x: UnitsValue;
1091
- y: UnitsValue;
1092
- };
1093
- smooth: boolean;
1094
- }[];
1095
- }[];
1096
- }[];
1097
- };
1098
- }[];
1099
- };
1100
- } | {
1101
- type: 'oil paint plugin';
1102
- filter: {
1103
- name: string;
1104
- gpu: boolean;
1105
- lighting: boolean;
1106
- parameters: {
1107
- name: string;
1108
- value: number;
1109
- }[];
1110
- };
1111
- } | {
1112
- type: 'hsb/hsl';
1113
- filter: {
1114
- inputMode: 'rgb' | 'hsb' | 'hsl';
1115
- rowOrder: 'rgb' | 'hsb' | 'hsl';
1116
- };
1117
- } | {
1118
- type: 'oil paint';
1119
- filter: {
1120
- lightingOn: boolean;
1121
- stylization: number;
1122
- cleanliness: number;
1123
- brushScale: number;
1124
- microBrush: number;
1125
- lightDirection: number;
1126
- specularity: number;
1127
- };
1128
- } | {
1129
- type: 'liquify';
1130
- filter: {
1131
- liquifyMesh: Uint8Array;
1132
- };
1133
- } | {
1134
- type: 'perspective warp';
1135
- filter: {
1136
- quads: number[][];
1137
- vertices: {
1138
- x: UnitsValue;
1139
- y: UnitsValue;
1140
- }[];
1141
- warpedVertices: {
1142
- x: UnitsValue;
1143
- y: UnitsValue;
1144
- }[];
1145
- };
1146
- } | {
1147
- type: 'curves';
1148
- filter: {
1149
- presetKind: 'custom' | 'default';
1150
- adjustments?: ({
1151
- channels: ('composite' | 'red' | 'green' | 'blue')[];
1152
- curve: {
1153
- x: number;
1154
- y: number;
1155
- curved?: boolean;
1156
- }[];
1157
- } | {
1158
- channels: ('composite' | 'red' | 'green' | 'blue')[];
1159
- values: number[];
1160
- })[];
1161
- };
1162
- } | {
1163
- type: 'invert';
1164
- } | {
1165
- type: 'brightness/contrast';
1166
- filter: {
1167
- brightness: number;
1168
- contrast: number;
1169
- useLegacy: boolean;
1170
- };
1171
- };
1172
- export type Filter = FilterVariant & {
1173
- name: string;
1174
- opacity: number;
1175
- blendMode: BlendMode;
1176
- enabled: boolean;
1177
- hasOptions: boolean;
1178
- foregroundColor: Color;
1179
- backgroundColor: Color;
1180
- };
1181
- export interface PlacedLayerFilter {
1182
- enabled: boolean;
1183
- validAtPosition: boolean;
1184
- maskEnabled: boolean;
1185
- maskLinked: boolean;
1186
- maskExtendWithWhite: boolean;
1187
- list: Filter[];
1188
- }
1189
- export type PlacedLayerType = 'unknown' | 'vector' | 'raster' | 'image stack';
1190
- export interface PlacedLayer {
1191
- id: string;
1192
- placed?: string;
1193
- type: PlacedLayerType;
1194
- pageNumber?: number;
1195
- totalPages?: number;
1196
- frameStep?: {
1197
- numerator: number;
1198
- denominator: number;
1199
- };
1200
- duration?: {
1201
- numerator: number;
1202
- denominator: number;
1203
- };
1204
- frameCount?: number;
1205
- transform: number[];
1206
- nonAffineTransform?: number[];
1207
- width?: number;
1208
- height?: number;
1209
- resolution?: UnitsValue;
1210
- warp?: Warp;
1211
- crop?: number;
1212
- comp?: number;
1213
- compInfo?: {
1214
- compID: number;
1215
- originalCompID: number;
1216
- };
1217
- filter?: PlacedLayerFilter;
1218
- }
1219
- export type AdjustmentLayer = BrightnessAdjustment | LevelsAdjustment | CurvesAdjustment | ExposureAdjustment | VibranceAdjustment | HueSaturationAdjustment | ColorBalanceAdjustment | BlackAndWhiteAdjustment | PhotoFilterAdjustment | ChannelMixerAdjustment | ColorLookupAdjustment | InvertAdjustment | PosterizeAdjustment | ThresholdAdjustment | GradientMapAdjustment | SelectiveColorAdjustment;
1220
- export type LayerColor = 'none' | 'red' | 'orange' | 'yellow' | 'green' | 'blue' | 'violet' | 'gray';
1221
- export interface KeyDescriptorItem {
1222
- keyShapeInvalidated?: boolean;
1223
- keyOriginType?: number;
1224
- keyOriginResolution?: number;
1225
- keyOriginRRectRadii?: {
1226
- topRight: UnitsValue;
1227
- topLeft: UnitsValue;
1228
- bottomLeft: UnitsValue;
1229
- bottomRight: UnitsValue;
1230
- };
1231
- keyOriginShapeBoundingBox?: {
1232
- top: UnitsValue;
1233
- left: UnitsValue;
1234
- bottom: UnitsValue;
1235
- right: UnitsValue;
1236
- };
1237
- keyOriginBoxCorners?: {
1238
- x: number;
1239
- y: number;
1240
- }[];
1241
- transform?: number[];
1242
- }
1243
- export interface LayerVectorMask {
1244
- invert?: boolean;
1245
- notLink?: boolean;
1246
- disable?: boolean;
1247
- fillStartsWithAllPixels?: boolean;
1248
- clipboard?: {
1249
- top: number;
1250
- left: number;
1251
- bottom: number;
1252
- right: number;
1253
- resolution: number;
1254
- };
1255
- paths: BezierPath[];
1256
- }
1257
- export interface AnimationFrame {
1258
- frames: number[];
1259
- enable?: boolean;
1260
- offset?: {
1261
- x: number;
1262
- y: number;
1263
- };
1264
- referencePoint?: {
1265
- x: number;
1266
- y: number;
1267
- };
1268
- opacity?: number;
1269
- effects?: LayerEffectsInfo;
1270
- }
1271
- export interface Fraction {
1272
- numerator: number;
1273
- denominator: number;
1274
- }
1275
- export type TimelineKeyInterpolation = 'linear' | 'hold';
1276
- export type TimelineKey = {
1277
- interpolation: TimelineKeyInterpolation;
1278
- time: Fraction;
1279
- selected?: boolean;
1280
- } & ({
1281
- type: 'opacity';
1282
- value: number;
1283
- } | {
1284
- type: 'position';
1285
- x: number;
1286
- y: number;
1287
- } | {
1288
- type: 'transform';
1289
- scale: {
1290
- x: number;
1291
- y: number;
1292
- };
1293
- skew: {
1294
- x: number;
1295
- y: number;
1296
- };
1297
- rotation: number;
1298
- translation: {
1299
- x: number;
1300
- y: number;
1301
- };
1302
- } | {
1303
- type: 'style';
1304
- style?: LayerEffectsInfo;
1305
- } | {
1306
- type: 'globalLighting';
1307
- globalAngle: number;
1308
- globalAltitude: number;
1309
- });
1310
- export type TimelineTrackType = 'opacity' | 'style' | 'sheetTransform' | 'sheetPosition' | 'globalLighting';
1311
- export interface TimelineTrack {
1312
- type: TimelineTrackType;
1313
- enabled?: boolean;
1314
- effectParams?: {
1315
- keys: TimelineKey[];
1316
- fillCanvas: boolean;
1317
- zoomOrigin: number;
1318
- };
1319
- keys: TimelineKey[];
1320
- }
1321
- export interface Timeline {
1322
- start: Fraction;
1323
- duration: Fraction;
1324
- inTime: Fraction;
1325
- outTime: Fraction;
1326
- autoScope: boolean;
1327
- audioLevel: number;
1328
- tracks?: TimelineTrack[];
1329
- }
1330
- export interface LayerAdditionalInfo {
1331
- name?: string;
1332
- nameSource?: string;
1333
- id?: number;
1334
- version?: number;
1335
- mask?: LayerMaskData;
1336
- realMask?: LayerMaskData;
1337
- blendClippendElements?: boolean;
1338
- blendInteriorElements?: boolean;
1339
- knockout?: boolean;
1340
- layerMaskAsGlobalMask?: boolean;
1341
- protected?: {
1342
- transparency?: boolean;
1343
- composite?: boolean;
1344
- position?: boolean;
1345
- artboards?: boolean;
1346
- };
1347
- layerColor?: LayerColor;
1348
- referencePoint?: {
1349
- x: number;
1350
- y: number;
1351
- };
1352
- sectionDivider?: {
1353
- type: SectionDividerType;
1354
- key?: string;
1355
- subType?: number;
1356
- };
1357
- filterMask?: {
1358
- colorSpace: Color;
1359
- opacity: number;
1360
- };
1361
- effects?: LayerEffectsInfo;
1362
- text?: LayerTextData;
1363
- patterns?: PatternInfo[];
1364
- vectorFill?: VectorContent;
1365
- vectorStroke?: {
1366
- strokeEnabled?: boolean;
1367
- fillEnabled?: boolean;
1368
- lineWidth?: UnitsValue;
1369
- lineDashOffset?: UnitsValue;
1370
- miterLimit?: number;
1371
- lineCapType?: LineCapType;
1372
- lineJoinType?: LineJoinType;
1373
- lineAlignment?: LineAlignment;
1374
- scaleLock?: boolean;
1375
- strokeAdjust?: boolean;
1376
- lineDashSet?: UnitsValue[];
1377
- blendMode?: BlendMode;
1378
- opacity?: number;
1379
- content?: VectorContent;
1380
- resolution?: number;
1381
- };
1382
- vectorMask?: LayerVectorMask;
1383
- usingAlignedRendering?: boolean;
1384
- timestamp?: number;
1385
- pathList?: {}[];
1386
- adjustment?: AdjustmentLayer;
1387
- placedLayer?: PlacedLayer;
1388
- vectorOrigination?: {
1389
- keyDescriptorList: KeyDescriptorItem[];
1390
- };
1391
- compositorUsed?: {
1392
- version?: {
1393
- major: number;
1394
- minor: number;
1395
- fix: number;
1396
- };
1397
- photoshopVersion?: {
1398
- major: number;
1399
- minor: number;
1400
- fix: number;
1401
- };
1402
- description: string;
1403
- reason: string;
1404
- engine: string;
1405
- enableCompCore?: string;
1406
- enableCompCoreGPU?: string;
1407
- enableCompCoreThreads?: string;
1408
- compCoreSupport?: string;
1409
- compCoreGPUSupport?: string;
1410
- };
1411
- artboard?: {
1412
- rect: {
1413
- top: number;
1414
- left: number;
1415
- bottom: number;
1416
- right: number;
1417
- };
1418
- guideIndices?: any[];
1419
- presetName?: string;
1420
- color?: Color;
1421
- backgroundType?: number;
1422
- };
1423
- fillOpacity?: number;
1424
- transparencyShapesLayer?: boolean;
1425
- channelBlendingRestrictions?: number[];
1426
- animationFrames?: AnimationFrame[];
1427
- animationFrameFlags?: {
1428
- propagateFrameOne?: boolean;
1429
- unifyLayerPosition?: boolean;
1430
- unifyLayerStyle?: boolean;
1431
- unifyLayerVisibility?: boolean;
1432
- };
1433
- timeline?: Timeline;
1434
- filterEffectsMasks?: {
1435
- id: string;
1436
- top: number;
1437
- left: number;
1438
- bottom: number;
1439
- right: number;
1440
- depth: number;
1441
- channels: ({
1442
- compressionMode: number;
1443
- data: Uint8Array;
1444
- } | undefined)[];
1445
- extra?: {
1446
- top: number;
1447
- left: number;
1448
- bottom: number;
1449
- right: number;
1450
- compressionMode: number;
1451
- data: Uint8Array;
1452
- };
1453
- }[];
1454
- comps?: {
1455
- originalEffectsReferencePoint?: {
1456
- x: number;
1457
- y: number;
1458
- };
1459
- settings: {
1460
- enabled?: boolean;
1461
- compList: number[];
1462
- offset?: {
1463
- x: number;
1464
- y: number;
1465
- };
1466
- effectsReferencePoint?: {
1467
- x: number;
1468
- y: number;
1469
- };
1470
- }[];
1471
- };
1472
- userMask?: {
1473
- colorSpace: Color;
1474
- opacity: number;
1475
- };
1476
- blendingRanges?: {
1477
- compositeGrayBlendSource: number[];
1478
- compositeGraphBlendDestinationRange: number[];
1479
- ranges: {
1480
- sourceRange: number[];
1481
- destRange: number[];
1482
- }[];
1483
- };
1484
- vowv?: number;
1485
- pixelSource?: {
1486
- type: 'vdPS';
1487
- origin: {
1488
- x: number;
1489
- y: number;
1490
- };
1491
- interpretation: {
1492
- interpretAlpha: string;
1493
- profile: Uint8Array;
1494
- };
1495
- frameReader: {
1496
- type: 'QTFR';
1497
- link: {
1498
- name: string;
1499
- fullPath: string;
1500
- originalPath: string;
1501
- relativePath: string;
1502
- alias: string;
1503
- };
1504
- mediaDescriptor: string;
1505
- };
1506
- showAlteredVideo: boolean;
1507
- };
1508
- engineData?: string;
1509
- }
1510
- export declare enum LayerCompCapturedInfo {
1511
- None = 0,
1512
- Visibility = 1,
1513
- Position = 2,
1514
- Appearance = 4
1515
- }
1516
- export interface ImageResources {
1517
- layerState?: number;
1518
- layerSelectionIds?: number[];
1519
- versionInfo?: {
1520
- hasRealMergedData: boolean;
1521
- writerName: string;
1522
- readerName: string;
1523
- fileVersion: number;
1524
- };
1525
- alphaIdentifiers?: number[];
1526
- alphaChannelNames?: string[];
1527
- globalAngle?: number;
1528
- globalAltitude?: number;
1529
- pixelAspectRatio?: {
1530
- aspect: number;
1531
- };
1532
- urlsList?: {
1533
- id: number;
1534
- ref: 'slice';
1535
- url: string;
1536
- }[];
1537
- gridAndGuidesInformation?: {
1538
- grid?: {
1539
- horizontal: number;
1540
- vertical: number;
1541
- };
1542
- guides?: {
1543
- location: number;
1544
- direction: 'horizontal' | 'vertical';
1545
- }[];
1546
- };
1547
- resolutionInfo?: {
1548
- horizontalResolution: number;
1549
- horizontalResolutionUnit: 'PPI' | 'PPCM';
1550
- widthUnit: 'Inches' | 'Centimeters' | 'Points' | 'Picas' | 'Columns';
1551
- verticalResolution: number;
1552
- verticalResolutionUnit: 'PPI' | 'PPCM';
1553
- heightUnit: 'Inches' | 'Centimeters' | 'Points' | 'Picas' | 'Columns';
1554
- };
1555
- thumbnail?: HTMLCanvasElement;
1556
- thumbnailRaw?: {
1557
- width: number;
1558
- height: number;
1559
- data: Uint8Array;
1560
- };
1561
- captionDigest?: string;
1562
- xmpMetadata?: string;
1563
- printScale?: {
1564
- style?: 'centered' | 'size to fit' | 'user defined';
1565
- x?: number;
1566
- y?: number;
1567
- scale?: number;
1568
- };
1569
- printInformation?: {
1570
- printerManagesColors?: boolean;
1571
- printerName?: string;
1572
- printerProfile?: string;
1573
- printSixteenBit?: boolean;
1574
- renderingIntent?: RenderingIntent;
1575
- hardProof?: boolean;
1576
- blackPointCompensation?: boolean;
1577
- proofSetup?: {
1578
- builtin: string;
1579
- } | {
1580
- profile: string;
1581
- renderingIntent?: RenderingIntent;
1582
- blackPointCompensation?: boolean;
1583
- paperWhite?: boolean;
1584
- };
1585
- };
1586
- backgroundColor?: Color;
1587
- idsSeedNumber?: number;
1588
- printFlags?: {
1589
- labels?: boolean;
1590
- cropMarks?: boolean;
1591
- colorBars?: boolean;
1592
- registrationMarks?: boolean;
1593
- negative?: boolean;
1594
- flip?: boolean;
1595
- interpolate?: boolean;
1596
- caption?: boolean;
1597
- printFlags?: boolean;
1598
- };
1599
- iccUntaggedProfile?: boolean;
1600
- pathSelectionState?: string[];
1601
- imageReadyVariables?: string;
1602
- imageReadyDataSets?: string;
1603
- animations?: Animations;
1604
- onionSkins?: {
1605
- enabled: boolean;
1606
- framesBefore: number;
1607
- framesAfter: number;
1608
- frameSpacing: number;
1609
- minOpacity: number;
1610
- maxOpacity: number;
1611
- blendMode: BlendMode;
1612
- };
1613
- timelineInformation?: {
1614
- enabled: boolean;
1615
- frameStep: Fraction;
1616
- frameRate: number;
1617
- time: Fraction;
1618
- duration: Fraction;
1619
- workInTime: Fraction;
1620
- workOutTime: Fraction;
1621
- repeats: number;
1622
- hasMotion: boolean;
1623
- globalTracks: TimelineTrack[];
1624
- audioClipGroups?: {
1625
- id: string;
1626
- muted: boolean;
1627
- audioClips: {
1628
- id: string;
1629
- start: Fraction;
1630
- duration: Fraction;
1631
- inTime: Fraction;
1632
- outTime: Fraction;
1633
- muted: boolean;
1634
- audioLevel: number;
1635
- frameReader: {
1636
- type: number;
1637
- mediaDescriptor: string;
1638
- link: {
1639
- name: string;
1640
- fullPath: string;
1641
- relativePath: string;
1642
- };
1643
- };
1644
- }[];
1645
- }[];
1646
- };
1647
- sheetDisclosure?: {
1648
- sheetTimelineOptions?: {
1649
- sheetID: number;
1650
- sheetDisclosed: boolean;
1651
- lightsDisclosed: boolean;
1652
- meshesDisclosed: boolean;
1653
- materialsDisclosed: boolean;
1654
- }[];
1655
- };
1656
- countInformation?: {
1657
- color: RGB;
1658
- name: string;
1659
- size: number;
1660
- fontSize: number;
1661
- visible: boolean;
1662
- points: {
1663
- x: number;
1664
- y: number;
1665
- }[];
1666
- }[];
1667
- slices?: {
1668
- bounds: {
1669
- left: number;
1670
- top: number;
1671
- right: number;
1672
- bottom: number;
1673
- };
1674
- groupName: string;
1675
- slices: {
1676
- id: number;
1677
- groupId: number;
1678
- origin: 'userGenerated' | 'autoGenerated' | 'layer';
1679
- associatedLayerId: number;
1680
- name?: string;
1681
- type: 'image' | 'noImage';
1682
- bounds: {
1683
- left: number;
1684
- top: number;
1685
- right: number;
1686
- bottom: number;
1687
- };
1688
- url: string;
1689
- target: string;
1690
- message: string;
1691
- altTag: string;
1692
- cellTextIsHTML: boolean;
1693
- cellText: string;
1694
- horizontalAlignment: 'default';
1695
- verticalAlignment: 'default';
1696
- backgroundColorType: 'none' | 'matte' | 'color';
1697
- backgroundColor: RGBA;
1698
- topOutset?: number;
1699
- leftOutset?: number;
1700
- bottomOutset?: number;
1701
- rightOutset?: number;
1702
- }[];
1703
- }[];
1704
- layerComps?: {
1705
- list: {
1706
- id: number;
1707
- name: string;
1708
- comment?: string;
1709
- capturedInfo: LayerCompCapturedInfo;
1710
- }[];
1711
- lastApplied?: number;
1712
- };
1713
- copyrighted?: boolean;
1714
- url?: string;
1715
- }
1716
- export interface GlobalLayerMaskInfo {
1717
- overlayColorSpace: number;
1718
- colorSpace1: number;
1719
- colorSpace2: number;
1720
- colorSpace3: number;
1721
- colorSpace4: number;
1722
- opacity: number;
1723
- kind: number;
1724
- }
1725
- export interface Annotation {
1726
- type: 'text' | 'sound';
1727
- open: boolean;
1728
- iconLocation: {
1729
- left: number;
1730
- top: number;
1731
- right: number;
1732
- bottom: number;
1733
- };
1734
- popupLocation: {
1735
- left: number;
1736
- top: number;
1737
- right: number;
1738
- bottom: number;
1739
- };
1740
- color: Color;
1741
- author: string;
1742
- name: string;
1743
- date: string;
1744
- data: string | Uint8Array;
1745
- }
1746
- export declare const enum ChannelID {
1747
- Color0 = 0,
1748
- Color1 = 1,
1749
- Color2 = 2,
1750
- Color3 = 3,
1751
- Transparency = -1,
1752
- UserMask = -2,
1753
- RealUserMask = -3
1754
- }
1755
- export declare const enum Compression {
1756
- RawData = 0,
1757
- RleCompressed = 1,
1758
- ZipWithoutPrediction = 2,
1759
- ZipWithPrediction = 3
1760
- }
1761
- export interface LayerRawDataChannel {
1762
- id: ChannelID;
1763
- compression: Compression;
1764
- data: Uint8Array | undefined;
1765
- }
1766
- export interface LayerRawData {
1767
- colorMode: ColorMode;
1768
- bitsPerChannel: number;
1769
- channels: LayerRawDataChannel[];
1770
- large: boolean;
1771
- }
1772
- export interface Layer extends LayerAdditionalInfo {
1773
- top?: number;
1774
- left?: number;
1775
- bottom?: number;
1776
- right?: number;
1777
- blendMode?: BlendMode;
1778
- opacity?: number;
1779
- transparencyProtected?: boolean;
1780
- effectsOpen?: boolean;
1781
- hidden?: boolean;
1782
- clipping?: boolean;
1783
- canvas?: HTMLCanvasElement;
1784
- imageData?: PixelData;
1785
- rawData?: LayerRawData;
1786
- children?: Layer[];
1787
- /** Applies only for layer groups. */
1788
- opened?: boolean;
1789
- linkGroup?: number;
1790
- linkGroupEnabled?: boolean;
1791
- }
1792
- export interface Psd extends LayerAdditionalInfo {
1793
- width: number;
1794
- height: number;
1795
- channels?: number;
1796
- bitsPerChannel?: number;
1797
- colorMode?: ColorMode;
1798
- palette?: RGB[];
1799
- children?: Layer[];
1800
- canvas?: HTMLCanvasElement;
1801
- imageData?: PixelData;
1802
- imageResources?: ImageResources;
1803
- linkedFiles?: LinkedFile[];
1804
- artboards?: {
1805
- count: number;
1806
- autoExpandOffset?: {
1807
- horizontal: number;
1808
- vertical: number;
1809
- };
1810
- origin?: {
1811
- horizontal: number;
1812
- vertical: number;
1813
- };
1814
- autoExpandEnabled?: boolean;
1815
- autoNestEnabled?: boolean;
1816
- autoPositionEnabled?: boolean;
1817
- shrinkwrapOnSaveEnabled?: boolean;
1818
- docDefaultNewArtboardBackgroundColor?: Color;
1819
- docDefaultNewArtboardBackgroundType?: number;
1820
- };
1821
- globalLayerMaskInfo?: GlobalLayerMaskInfo;
1822
- annotations?: Annotation[];
1823
- }
1824
- export interface ReadOptions {
1825
- /** Does not load layer image data. */
1826
- skipLayerImageData?: boolean;
1827
- /** Does not load composite image data. */
1828
- skipCompositeImageData?: boolean;
1829
- /** Does not load thumbnail. */
1830
- skipThumbnail?: boolean;
1831
- /** Does not load linked files (used in smart-objects). */
1832
- skipLinkedFilesData?: boolean;
1833
- /** Throws exception if features are missing. */
1834
- throwForMissingFeatures?: boolean;
1835
- /** Logs if features are missing. */
1836
- logMissingFeatures?: boolean;
1837
- /** Keep image data as byte array instead of canvas.
1838
- * (image data will appear in `imageData` fields instead of `canvas` fields)
1839
- * This avoids issues with canvas premultiplied alpha corrupting image data. */
1840
- useImageData?: boolean;
1841
- useRawData?: boolean;
1842
- /** Loads thumbnail raw data instead of decoding it's content into canvas.
1843
- * `thumnailRaw` field is used instead. */
1844
- useRawThumbnail?: boolean;
1845
- /** Used only for development. */
1846
- logDevFeatures?: boolean;
1847
- /** Used only for development. */
1848
- strict?: boolean;
1849
- /** Used only for development. */
1850
- debug?: boolean;
1851
- /** Used only for development. */
1852
- log?: (...args: any[]) => void;
1853
- }
1854
- export interface WriteOptions {
1855
- /** Automatically generates thumbnail from composite image. */
1856
- generateThumbnail?: boolean;
1857
- /** Trims transparent pixels from layer image data. */
1858
- trimImageData?: boolean;
1859
- /** Invalidates text layer data, forcing Photoshop to redraw them on load.
1860
- * Use this option if you're updating loaded text layer properties. */
1861
- invalidateTextLayers?: boolean;
1862
- /** Logs if features are missing. */
1863
- logMissingFeatures?: boolean;
1864
- /** Forces bottom layer to be treated as layer and not background even when it's missing any transparency
1865
- * (by default Photoshop treats bottom layer as background it it doesn't have any transparent pixels). */
1866
- noBackground?: boolean;
1867
- /** Saves document as PSB (Large Document Format) file. */
1868
- psb?: boolean;
1869
- /** Uses zip compression when writing PSD file, will result in smaller file size but may be incompatible
1870
- * with some software. It may also be significantly slower. */
1871
- compress?: boolean;
1872
- }
1873
- export {};
1
+ export type BlendMode = 'pass through' | 'normal' | 'dissolve' | 'darken' | 'multiply' | 'color burn' | 'linear burn' | 'darker color' | 'lighten' | 'screen' | 'color dodge' | 'linear dodge' | 'lighter color' | 'overlay' | 'soft light' | 'hard light' | 'vivid light' | 'linear light' | 'pin light' | 'hard mix' | 'difference' | 'exclusion' | 'subtract' | 'divide' | 'hue' | 'saturation' | 'color' | 'luminosity';
2
+ export declare const enum ColorMode {
3
+ Bitmap = 0,
4
+ Grayscale = 1,
5
+ Indexed = 2,
6
+ RGB = 3,
7
+ CMYK = 4,
8
+ Multichannel = 7,
9
+ Duotone = 8,
10
+ Lab = 9
11
+ }
12
+ export declare const enum SectionDividerType {
13
+ Other = 0,
14
+ OpenFolder = 1,
15
+ ClosedFolder = 2,
16
+ BoundingSectionDivider = 3
17
+ }
18
+ export type RGBA = {
19
+ r: number;
20
+ g: number;
21
+ b: number;
22
+ a: number;
23
+ };
24
+ export type RGB = {
25
+ r: number;
26
+ g: number;
27
+ b: number;
28
+ };
29
+ export type FRGB = {
30
+ fr: number;
31
+ fg: number;
32
+ fb: number;
33
+ };
34
+ export type HSB = {
35
+ h: number;
36
+ s: number;
37
+ b: number;
38
+ };
39
+ export type CMYK = {
40
+ c: number;
41
+ m: number;
42
+ y: number;
43
+ k: number;
44
+ };
45
+ export type LAB = {
46
+ l: number;
47
+ a: number;
48
+ b: number;
49
+ };
50
+ export type Grayscale = {
51
+ k: number;
52
+ };
53
+ export type Color = RGBA | RGB | FRGB | HSB | CMYK | LAB | Grayscale;
54
+ export interface EffectContour {
55
+ name: string;
56
+ curve: {
57
+ x: number;
58
+ y: number;
59
+ }[];
60
+ }
61
+ export interface EffectPattern {
62
+ name: string;
63
+ id: string;
64
+ }
65
+ export interface LayerEffectShadow {
66
+ present?: boolean;
67
+ showInDialog?: boolean;
68
+ enabled?: boolean;
69
+ size?: UnitsValue;
70
+ angle?: number;
71
+ distance?: UnitsValue;
72
+ color?: Color;
73
+ blendMode?: BlendMode;
74
+ opacity?: number;
75
+ useGlobalLight?: boolean;
76
+ antialiased?: boolean;
77
+ contour?: EffectContour;
78
+ choke?: UnitsValue;
79
+ layerConceals?: boolean;
80
+ }
81
+ export interface LayerEffectsOuterGlow {
82
+ present?: boolean;
83
+ showInDialog?: boolean;
84
+ enabled?: boolean;
85
+ size?: UnitsValue;
86
+ color?: Color;
87
+ blendMode?: BlendMode;
88
+ opacity?: number;
89
+ source?: GlowSource;
90
+ antialiased?: boolean;
91
+ noise?: number;
92
+ range?: number;
93
+ choke?: UnitsValue;
94
+ jitter?: number;
95
+ contour?: EffectContour;
96
+ }
97
+ export interface LayerEffectInnerGlow {
98
+ present?: boolean;
99
+ showInDialog?: boolean;
100
+ enabled?: boolean;
101
+ size?: UnitsValue;
102
+ color?: Color;
103
+ blendMode?: BlendMode;
104
+ opacity?: number;
105
+ source?: GlowSource;
106
+ technique?: GlowTechnique;
107
+ antialiased?: boolean;
108
+ noise?: number;
109
+ range?: number;
110
+ choke?: UnitsValue;
111
+ jitter?: number;
112
+ contour?: EffectContour;
113
+ }
114
+ export interface LayerEffectBevel {
115
+ present?: boolean;
116
+ showInDialog?: boolean;
117
+ enabled?: boolean;
118
+ size?: UnitsValue;
119
+ angle?: number;
120
+ strength?: number;
121
+ highlightBlendMode?: BlendMode;
122
+ shadowBlendMode?: BlendMode;
123
+ highlightColor?: Color;
124
+ shadowColor?: Color;
125
+ style?: BevelStyle;
126
+ highlightOpacity?: number;
127
+ shadowOpacity?: number;
128
+ soften?: UnitsValue;
129
+ useGlobalLight?: boolean;
130
+ altitude?: number;
131
+ technique?: BevelTechnique;
132
+ direction?: BevelDirection;
133
+ useTexture?: boolean;
134
+ useShape?: boolean;
135
+ antialiasGloss?: boolean;
136
+ contour?: EffectContour;
137
+ }
138
+ export interface LayerEffectSolidFill {
139
+ present?: boolean;
140
+ showInDialog?: boolean;
141
+ enabled?: boolean;
142
+ blendMode?: BlendMode;
143
+ color?: Color;
144
+ opacity?: number;
145
+ }
146
+ export interface LayerEffectStroke {
147
+ present?: boolean;
148
+ showInDialog?: boolean;
149
+ enabled?: boolean;
150
+ overprint?: boolean;
151
+ size?: UnitsValue;
152
+ position?: 'inside' | 'center' | 'outside';
153
+ fillType?: 'color' | 'gradient' | 'pattern';
154
+ blendMode?: BlendMode;
155
+ opacity?: number;
156
+ color?: Color;
157
+ gradient?: (EffectSolidGradient | EffectNoiseGradient) & ExtraGradientInfo;
158
+ pattern?: EffectPattern & {};
159
+ }
160
+ export interface LayerEffectSatin {
161
+ present?: boolean;
162
+ showInDialog?: boolean;
163
+ enabled?: boolean;
164
+ size?: UnitsValue;
165
+ blendMode?: BlendMode;
166
+ color?: Color;
167
+ antialiased?: boolean;
168
+ opacity?: number;
169
+ distance?: UnitsValue;
170
+ invert?: boolean;
171
+ angle?: number;
172
+ contour?: EffectContour;
173
+ }
174
+ export interface LayerEffectPatternOverlay {
175
+ present?: boolean;
176
+ showInDialog?: boolean;
177
+ enabled?: boolean;
178
+ blendMode?: BlendMode;
179
+ opacity?: number;
180
+ scale?: number;
181
+ pattern?: EffectPattern;
182
+ phase?: {
183
+ x: number;
184
+ y: number;
185
+ };
186
+ align?: boolean;
187
+ }
188
+ export interface EffectSolidGradient {
189
+ name: string;
190
+ type: 'solid';
191
+ smoothness?: number;
192
+ colorStops: ColorStop[];
193
+ opacityStops: OpacityStop[];
194
+ }
195
+ export interface EffectNoiseGradient {
196
+ name: string;
197
+ type: 'noise';
198
+ roughness?: number;
199
+ colorModel?: 'rgb' | 'hsb' | 'lab';
200
+ randomSeed?: number;
201
+ restrictColors?: boolean;
202
+ addTransparency?: boolean;
203
+ min: number[];
204
+ max: number[];
205
+ }
206
+ export interface LayerEffectGradientOverlay {
207
+ present?: boolean;
208
+ showInDialog?: boolean;
209
+ enabled?: boolean;
210
+ blendMode?: string;
211
+ opacity?: number;
212
+ align?: boolean;
213
+ scale?: number;
214
+ dither?: boolean;
215
+ reverse?: boolean;
216
+ type?: GradientStyle;
217
+ offset?: {
218
+ x: number;
219
+ y: number;
220
+ };
221
+ gradient?: EffectSolidGradient | EffectNoiseGradient;
222
+ interpolationMethod?: InterpolationMethod;
223
+ angle?: number;
224
+ }
225
+ export interface LayerEffectsInfo {
226
+ disabled?: boolean;
227
+ scale?: number;
228
+ dropShadow?: LayerEffectShadow[];
229
+ innerShadow?: LayerEffectShadow[];
230
+ outerGlow?: LayerEffectsOuterGlow;
231
+ innerGlow?: LayerEffectInnerGlow;
232
+ bevel?: LayerEffectBevel;
233
+ solidFill?: LayerEffectSolidFill[];
234
+ satin?: LayerEffectSatin;
235
+ stroke?: LayerEffectStroke[];
236
+ gradientOverlay?: LayerEffectGradientOverlay[];
237
+ patternOverlay?: LayerEffectPatternOverlay;
238
+ }
239
+ export type PixelArray = Uint8ClampedArray | Uint8Array | Uint16Array | Float32Array;
240
+ export interface PixelData {
241
+ data: PixelArray;
242
+ width: number;
243
+ height: number;
244
+ }
245
+ export interface LayerMaskData {
246
+ top?: number;
247
+ left?: number;
248
+ bottom?: number;
249
+ right?: number;
250
+ defaultColor?: number;
251
+ disabled?: boolean;
252
+ positionRelativeToLayer?: boolean;
253
+ fromVectorData?: boolean;
254
+ userMaskDensity?: number;
255
+ userMaskFeather?: number;
256
+ vectorMaskDensity?: number;
257
+ vectorMaskFeather?: number;
258
+ canvas?: HTMLCanvasElement;
259
+ imageData?: PixelData;
260
+ }
261
+ export type TextGridding = 'none' | 'round';
262
+ export type Orientation = 'horizontal' | 'vertical';
263
+ export type AntiAlias = 'none' | 'sharp' | 'crisp' | 'strong' | 'smooth' | 'platform' | 'platformLCD';
264
+ export type WarpStyle = 'none' | 'arc' | 'arcLower' | 'arcUpper' | 'arch' | 'bulge' | 'shellLower' | 'shellUpper' | 'flag' | 'wave' | 'fish' | 'rise' | 'fisheye' | 'inflate' | 'squeeze' | 'twist' | 'custom' | 'cylinder';
265
+ export type BevelStyle = 'outer bevel' | 'inner bevel' | 'emboss' | 'pillow emboss' | 'stroke emboss';
266
+ export type BevelTechnique = 'smooth' | 'chisel hard' | 'chisel soft';
267
+ export type BevelDirection = 'up' | 'down';
268
+ export type GlowTechnique = 'softer' | 'precise';
269
+ export type GlowSource = 'edge' | 'center';
270
+ export type GradientStyle = 'linear' | 'radial' | 'angle' | 'reflected' | 'diamond';
271
+ export type Justification = 'left' | 'right' | 'center' | 'justify-left' | 'justify-right' | 'justify-center' | 'justify-all';
272
+ export type LineCapType = 'butt' | 'round' | 'square';
273
+ export type LineJoinType = 'miter' | 'round' | 'bevel';
274
+ export type LineAlignment = 'inside' | 'center' | 'outside';
275
+ export type InterpolationMethod = 'classic' | 'perceptual' | 'linear' | 'smooth';
276
+ export interface Warp {
277
+ style?: WarpStyle;
278
+ value?: number;
279
+ values?: number[];
280
+ perspective?: number;
281
+ perspectiveOther?: number;
282
+ rotate?: Orientation;
283
+ bounds?: {
284
+ top: UnitsValue;
285
+ left: UnitsValue;
286
+ bottom: UnitsValue;
287
+ right: UnitsValue;
288
+ };
289
+ uOrder?: number;
290
+ vOrder?: number;
291
+ deformNumRows?: number;
292
+ deformNumCols?: number;
293
+ customEnvelopeWarp?: {
294
+ quiltSliceX?: number[];
295
+ quiltSliceY?: number[];
296
+ meshPoints: {
297
+ x: number;
298
+ y: number;
299
+ }[];
300
+ };
301
+ }
302
+ export interface Animations {
303
+ frames: {
304
+ id: number;
305
+ delay: number;
306
+ dispose?: 'auto' | 'none' | 'dispose';
307
+ }[];
308
+ animations: {
309
+ id: number;
310
+ frames: number[];
311
+ repeats?: number;
312
+ activeFrame?: number;
313
+ }[];
314
+ }
315
+ export interface Font {
316
+ name: string;
317
+ script?: number;
318
+ type?: number;
319
+ synthetic?: number;
320
+ }
321
+ export interface ParagraphStyle {
322
+ justification?: Justification;
323
+ firstLineIndent?: number;
324
+ startIndent?: number;
325
+ endIndent?: number;
326
+ spaceBefore?: number;
327
+ spaceAfter?: number;
328
+ autoHyphenate?: boolean;
329
+ hyphenatedWordSize?: number;
330
+ preHyphen?: number;
331
+ postHyphen?: number;
332
+ consecutiveHyphens?: number;
333
+ zone?: number;
334
+ wordSpacing?: number[];
335
+ letterSpacing?: number[];
336
+ glyphSpacing?: number[];
337
+ autoLeading?: number;
338
+ leadingType?: number;
339
+ hanging?: boolean;
340
+ burasagari?: boolean;
341
+ kinsokuOrder?: number;
342
+ everyLineComposer?: boolean;
343
+ }
344
+ export interface ParagraphStyleRun {
345
+ length: number;
346
+ style: ParagraphStyle;
347
+ }
348
+ export interface TextStyle {
349
+ font?: Font;
350
+ fontSize?: number;
351
+ fauxBold?: boolean;
352
+ fauxItalic?: boolean;
353
+ autoLeading?: boolean;
354
+ leading?: number;
355
+ horizontalScale?: number;
356
+ verticalScale?: number;
357
+ tracking?: number;
358
+ autoKerning?: boolean;
359
+ kerning?: number;
360
+ baselineShift?: number;
361
+ fontCaps?: number;
362
+ fontBaseline?: number;
363
+ underline?: boolean;
364
+ strikethrough?: boolean;
365
+ ligatures?: boolean;
366
+ dLigatures?: boolean;
367
+ baselineDirection?: number;
368
+ tsume?: number;
369
+ styleRunAlignment?: number;
370
+ language?: number;
371
+ noBreak?: boolean;
372
+ fillColor?: Color;
373
+ strokeColor?: Color;
374
+ fillFlag?: boolean;
375
+ strokeFlag?: boolean;
376
+ fillFirst?: boolean;
377
+ yUnderline?: number;
378
+ outlineWidth?: number;
379
+ characterDirection?: number;
380
+ hindiNumbers?: boolean;
381
+ kashida?: number;
382
+ diacriticPos?: number;
383
+ }
384
+ export interface TextStyleRun {
385
+ length: number;
386
+ style: TextStyle;
387
+ }
388
+ export interface TextGridInfo {
389
+ isOn?: boolean;
390
+ show?: boolean;
391
+ size?: number;
392
+ leading?: number;
393
+ color?: Color;
394
+ leadingFillColor?: Color;
395
+ alignLineHeightToGridFlags?: boolean;
396
+ }
397
+ export interface UnitsBounds {
398
+ top: UnitsValue;
399
+ left: UnitsValue;
400
+ right: UnitsValue;
401
+ bottom: UnitsValue;
402
+ }
403
+ export interface TextPath {
404
+ name?: number[];
405
+ bezierCurve?: {
406
+ controlPoints: number[];
407
+ };
408
+ data: {
409
+ type?: number;
410
+ orientation?: number;
411
+ frameMatrix: number[];
412
+ textRange: number[];
413
+ rowGutter?: number;
414
+ columnGutter?: number;
415
+ BaselineAlignment?: {
416
+ flag?: number;
417
+ min?: number;
418
+ };
419
+ pathData: {
420
+ reversed?: boolean;
421
+ spacing?: number;
422
+ };
423
+ };
424
+ uuid?: string;
425
+ }
426
+ export interface LayerTextData {
427
+ text: string;
428
+ transform?: number[];
429
+ antiAlias?: AntiAlias;
430
+ gridding?: TextGridding;
431
+ orientation?: Orientation;
432
+ index?: number;
433
+ warp?: Warp;
434
+ top?: number;
435
+ left?: number;
436
+ bottom?: number;
437
+ right?: number;
438
+ gridInfo?: TextGridInfo;
439
+ useFractionalGlyphWidths?: boolean;
440
+ style?: TextStyle;
441
+ styleRuns?: TextStyleRun[];
442
+ paragraphStyle?: ParagraphStyle;
443
+ paragraphStyleRuns?: ParagraphStyleRun[];
444
+ superscriptSize?: number;
445
+ superscriptPosition?: number;
446
+ subscriptSize?: number;
447
+ subscriptPosition?: number;
448
+ smallCapSize?: number;
449
+ shapeType?: 'point' | 'box';
450
+ pointBase?: number[];
451
+ boxBounds?: number[];
452
+ bounds?: UnitsBounds;
453
+ boundingBox?: UnitsBounds;
454
+ /** This is read-only field, any changes will not be saved */
455
+ textPath?: TextPath;
456
+ }
457
+ export interface PatternInfo {
458
+ name: string;
459
+ id: string;
460
+ x: number;
461
+ y: number;
462
+ bounds: {
463
+ x: number;
464
+ y: number;
465
+ w: number;
466
+ h: number;
467
+ };
468
+ data: Uint8Array;
469
+ }
470
+ export interface BezierKnot {
471
+ linked: boolean;
472
+ points: number[];
473
+ }
474
+ export type BooleanOperation = 'exclude' | 'combine' | 'subtract' | 'intersect';
475
+ export interface BezierPath {
476
+ open: boolean;
477
+ operation?: BooleanOperation;
478
+ knots: BezierKnot[];
479
+ fillRule: 'even-odd' | 'non-zero';
480
+ }
481
+ export interface ExtraGradientInfo {
482
+ style?: GradientStyle;
483
+ scale?: number;
484
+ angle?: number;
485
+ dither?: boolean;
486
+ interpolationMethod?: InterpolationMethod;
487
+ reverse?: boolean;
488
+ align?: boolean;
489
+ offset?: {
490
+ x: number;
491
+ y: number;
492
+ };
493
+ }
494
+ export interface ExtraPatternInfo {
495
+ linked?: boolean;
496
+ phase?: {
497
+ x: number;
498
+ y: number;
499
+ };
500
+ }
501
+ export type VectorContent = {
502
+ type: 'color';
503
+ color: Color;
504
+ } | (EffectSolidGradient & ExtraGradientInfo) | (EffectNoiseGradient & ExtraGradientInfo) | (EffectPattern & {
505
+ type: 'pattern';
506
+ } & ExtraPatternInfo);
507
+ export type RenderingIntent = 'perceptual' | 'saturation' | 'relative colorimetric' | 'absolute colorimetric';
508
+ export type Units = 'Pixels' | 'Points' | 'Picas' | 'Millimeters' | 'Centimeters' | 'Inches' | 'None' | 'Density';
509
+ export interface UnitsValue {
510
+ units: Units;
511
+ value: number;
512
+ }
513
+ export interface BrightnessAdjustment {
514
+ type: 'brightness/contrast';
515
+ brightness?: number;
516
+ contrast?: number;
517
+ meanValue?: number;
518
+ useLegacy?: boolean;
519
+ labColorOnly?: boolean;
520
+ auto?: boolean;
521
+ }
522
+ export interface LevelsAdjustmentChannel {
523
+ shadowInput: number;
524
+ highlightInput: number;
525
+ shadowOutput: number;
526
+ highlightOutput: number;
527
+ midtoneInput: number;
528
+ }
529
+ export interface PresetInfo {
530
+ presetKind?: number;
531
+ presetFileName?: string;
532
+ }
533
+ export interface LevelsAdjustment extends PresetInfo {
534
+ type: 'levels';
535
+ rgb?: LevelsAdjustmentChannel;
536
+ red?: LevelsAdjustmentChannel;
537
+ green?: LevelsAdjustmentChannel;
538
+ blue?: LevelsAdjustmentChannel;
539
+ }
540
+ export type CurvesAdjustmentChannel = {
541
+ input: number;
542
+ output: number;
543
+ }[];
544
+ export interface CurvesAdjustment extends PresetInfo {
545
+ type: 'curves';
546
+ rgb?: CurvesAdjustmentChannel;
547
+ red?: CurvesAdjustmentChannel;
548
+ green?: CurvesAdjustmentChannel;
549
+ blue?: CurvesAdjustmentChannel;
550
+ }
551
+ export interface ExposureAdjustment extends PresetInfo {
552
+ type: 'exposure';
553
+ exposure?: number;
554
+ offset?: number;
555
+ gamma?: number;
556
+ }
557
+ export interface VibranceAdjustment {
558
+ type: 'vibrance';
559
+ vibrance?: number;
560
+ saturation?: number;
561
+ }
562
+ export interface HueSaturationAdjustmentChannel {
563
+ a: number;
564
+ b: number;
565
+ c: number;
566
+ d: number;
567
+ hue: number;
568
+ saturation: number;
569
+ lightness: number;
570
+ }
571
+ export interface HueSaturationAdjustment extends PresetInfo {
572
+ type: 'hue/saturation';
573
+ master?: HueSaturationAdjustmentChannel;
574
+ reds?: HueSaturationAdjustmentChannel;
575
+ yellows?: HueSaturationAdjustmentChannel;
576
+ greens?: HueSaturationAdjustmentChannel;
577
+ cyans?: HueSaturationAdjustmentChannel;
578
+ blues?: HueSaturationAdjustmentChannel;
579
+ magentas?: HueSaturationAdjustmentChannel;
580
+ }
581
+ export interface ColorBalanceValues {
582
+ cyanRed: number;
583
+ magentaGreen: number;
584
+ yellowBlue: number;
585
+ }
586
+ export interface ColorBalanceAdjustment {
587
+ type: 'color balance';
588
+ shadows?: ColorBalanceValues;
589
+ midtones?: ColorBalanceValues;
590
+ highlights?: ColorBalanceValues;
591
+ preserveLuminosity?: boolean;
592
+ }
593
+ export interface BlackAndWhiteAdjustment extends PresetInfo {
594
+ type: 'black & white';
595
+ reds?: number;
596
+ yellows?: number;
597
+ greens?: number;
598
+ cyans?: number;
599
+ blues?: number;
600
+ magentas?: number;
601
+ useTint?: boolean;
602
+ tintColor?: Color;
603
+ }
604
+ export interface PhotoFilterAdjustment {
605
+ type: 'photo filter';
606
+ color?: Color;
607
+ density?: number;
608
+ preserveLuminosity?: boolean;
609
+ }
610
+ export interface ChannelMixerChannel {
611
+ red: number;
612
+ green: number;
613
+ blue: number;
614
+ constant: number;
615
+ }
616
+ export interface ChannelMixerAdjustment extends PresetInfo {
617
+ type: 'channel mixer';
618
+ monochrome?: boolean;
619
+ red?: ChannelMixerChannel;
620
+ green?: ChannelMixerChannel;
621
+ blue?: ChannelMixerChannel;
622
+ gray?: ChannelMixerChannel;
623
+ }
624
+ export interface ColorLookupAdjustment {
625
+ type: 'color lookup';
626
+ lookupType?: '3dlut' | 'abstractProfile' | 'deviceLinkProfile';
627
+ name?: string;
628
+ dither?: boolean;
629
+ profile?: Uint8Array;
630
+ lutFormat?: 'look' | 'cube' | '3dl';
631
+ dataOrder?: 'rgb' | 'bgr';
632
+ tableOrder?: 'rgb' | 'bgr';
633
+ lut3DFileData?: Uint8Array;
634
+ lut3DFileName?: string;
635
+ }
636
+ export interface InvertAdjustment {
637
+ type: 'invert';
638
+ }
639
+ export interface PosterizeAdjustment {
640
+ type: 'posterize';
641
+ levels?: number;
642
+ }
643
+ export interface ThresholdAdjustment {
644
+ type: 'threshold';
645
+ level?: number;
646
+ }
647
+ export interface ColorStop {
648
+ color: Color;
649
+ location: number;
650
+ midpoint: number;
651
+ }
652
+ export interface OpacityStop {
653
+ opacity: number;
654
+ location: number;
655
+ midpoint: number;
656
+ }
657
+ export interface GradientMapAdjustment {
658
+ type: 'gradient map';
659
+ name?: string;
660
+ gradientType: 'solid' | 'noise';
661
+ dither?: boolean;
662
+ reverse?: boolean;
663
+ method?: InterpolationMethod;
664
+ smoothness?: number;
665
+ colorStops?: ColorStop[];
666
+ opacityStops?: OpacityStop[];
667
+ roughness?: number;
668
+ colorModel?: 'rgb' | 'hsb' | 'lab';
669
+ randomSeed?: number;
670
+ restrictColors?: boolean;
671
+ addTransparency?: boolean;
672
+ min?: number[];
673
+ max?: number[];
674
+ }
675
+ export interface SelectiveColorAdjustment {
676
+ type: 'selective color';
677
+ mode?: 'relative' | 'absolute';
678
+ reds?: CMYK;
679
+ yellows?: CMYK;
680
+ greens?: CMYK;
681
+ cyans?: CMYK;
682
+ blues?: CMYK;
683
+ magentas?: CMYK;
684
+ whites?: CMYK;
685
+ neutrals?: CMYK;
686
+ blacks?: CMYK;
687
+ }
688
+ export type LinkedFile = {
689
+ id: string;
690
+ name: string;
691
+ type?: string;
692
+ creator?: string;
693
+ data?: Uint8Array;
694
+ time?: string;
695
+ descriptor?: {
696
+ compInfo: {
697
+ compID: number;
698
+ originalCompID: number;
699
+ };
700
+ };
701
+ childDocumentID?: string;
702
+ assetModTime?: number;
703
+ assetLockedState?: number;
704
+ linkedFile?: {
705
+ fileSize: number;
706
+ name: string;
707
+ fullPath: string;
708
+ originalPath: string;
709
+ relativePath: string;
710
+ };
711
+ };
712
+ type FilterVariant = {
713
+ type: 'average' | 'blur' | 'blur more';
714
+ } | {
715
+ type: 'box blur';
716
+ filter: {
717
+ radius: UnitsValue;
718
+ };
719
+ } | {
720
+ type: 'gaussian blur';
721
+ filter: {
722
+ radius: UnitsValue;
723
+ };
724
+ } | {
725
+ type: 'motion blur';
726
+ filter: {
727
+ angle: number;
728
+ distance: UnitsValue;
729
+ };
730
+ } | {
731
+ type: 'radial blur';
732
+ filter: {
733
+ amount: number;
734
+ method: 'spin' | 'zoom';
735
+ quality: 'draft' | 'good' | 'best';
736
+ };
737
+ } | {
738
+ type: 'shape blur';
739
+ filter: {
740
+ radius: UnitsValue;
741
+ customShape: {
742
+ name: string;
743
+ id: string;
744
+ };
745
+ };
746
+ } | {
747
+ type: 'smart blur';
748
+ filter: {
749
+ radius: number;
750
+ threshold: number;
751
+ quality: 'low' | 'medium' | 'high';
752
+ mode: 'normal' | 'edge only' | 'overlay edge';
753
+ };
754
+ } | {
755
+ type: 'surface blur';
756
+ filter: {
757
+ radius: UnitsValue;
758
+ threshold: number;
759
+ };
760
+ } | {
761
+ type: 'displace';
762
+ filter: {
763
+ horizontalScale: number;
764
+ verticalScale: number;
765
+ displacementMap: 'stretch to fit' | 'tile';
766
+ undefinedAreas: 'wrap around' | 'repeat edge pixels';
767
+ displacementFile: {
768
+ signature: string;
769
+ path: string;
770
+ };
771
+ };
772
+ } | {
773
+ type: 'pinch';
774
+ filter: {
775
+ amount: number;
776
+ };
777
+ } | {
778
+ type: 'polar coordinates';
779
+ filter: {
780
+ conversion: 'rectangular to polar' | 'polar to rectangular';
781
+ };
782
+ } | {
783
+ type: 'ripple';
784
+ filter: {
785
+ amount: number;
786
+ size: 'small' | 'medium' | 'large';
787
+ };
788
+ } | {
789
+ type: 'shear';
790
+ filter: {
791
+ shearPoints: {
792
+ x: number;
793
+ y: number;
794
+ }[];
795
+ shearStart: number;
796
+ shearEnd: number;
797
+ undefinedAreas: 'wrap around' | 'repeat edge pixels';
798
+ };
799
+ } | {
800
+ type: 'spherize';
801
+ filter: {
802
+ amount: number;
803
+ mode: 'normal' | 'horizontal only' | 'vertical only';
804
+ };
805
+ } | {
806
+ type: 'twirl';
807
+ filter: {
808
+ angle: number;
809
+ };
810
+ } | {
811
+ type: 'wave';
812
+ filter: {
813
+ numberOfGenerators: number;
814
+ type: 'sine' | 'triangle' | 'square';
815
+ wavelength: {
816
+ min: number;
817
+ max: number;
818
+ };
819
+ amplitude: {
820
+ min: number;
821
+ max: number;
822
+ };
823
+ scale: {
824
+ x: number;
825
+ y: number;
826
+ };
827
+ randomSeed: number;
828
+ undefinedAreas: 'wrap around' | 'repeat edge pixels';
829
+ };
830
+ } | {
831
+ type: 'zigzag';
832
+ filter: {
833
+ amount: number;
834
+ ridges: number;
835
+ style: 'around center' | 'out from center' | 'pond ripples';
836
+ };
837
+ } | {
838
+ type: 'add noise';
839
+ filter: {
840
+ amount: number;
841
+ distribution: 'uniform' | 'gaussian';
842
+ monochromatic: boolean;
843
+ randomSeed: number;
844
+ };
845
+ } | {
846
+ type: 'despeckle';
847
+ } | {
848
+ type: 'dust and scratches';
849
+ filter: {
850
+ radius: number;
851
+ threshold: number;
852
+ };
853
+ } | {
854
+ type: 'median';
855
+ filter: {
856
+ radius: UnitsValue;
857
+ };
858
+ } | {
859
+ type: 'reduce noise';
860
+ filter: {
861
+ preset: string;
862
+ removeJpegArtifact: boolean;
863
+ reduceColorNoise: number;
864
+ sharpenDetails: number;
865
+ channelDenoise: {
866
+ channels: ('red' | 'green' | 'blue' | 'composite')[];
867
+ amount: number;
868
+ preserveDetails?: number;
869
+ }[];
870
+ };
871
+ } | {
872
+ type: 'color halftone';
873
+ filter: {
874
+ radius: number;
875
+ angle1: number;
876
+ angle2: number;
877
+ angle3: number;
878
+ angle4: number;
879
+ };
880
+ } | {
881
+ type: 'crystallize';
882
+ filter: {
883
+ cellSize: number;
884
+ randomSeed: number;
885
+ };
886
+ } | {
887
+ type: 'facet' | 'fragment';
888
+ } | {
889
+ type: 'mezzotint';
890
+ filter: {
891
+ type: 'fine dots' | 'medium dots' | 'grainy dots' | 'coarse dots' | 'short lines' | 'medium lines' | 'long lines' | 'short strokes' | 'medium strokes' | 'long strokes';
892
+ randomSeed: number;
893
+ };
894
+ } | {
895
+ type: 'mosaic';
896
+ filter: {
897
+ cellSize: UnitsValue;
898
+ };
899
+ } | {
900
+ type: 'pointillize';
901
+ filter: {
902
+ cellSize: number;
903
+ randomSeed: number;
904
+ };
905
+ } | {
906
+ type: 'clouds';
907
+ filter: {
908
+ randomSeed: number;
909
+ };
910
+ } | {
911
+ type: 'difference clouds';
912
+ filter: {
913
+ randomSeed: number;
914
+ };
915
+ } | {
916
+ type: 'fibers';
917
+ filter: {
918
+ variance: number;
919
+ strength: number;
920
+ randomSeed: number;
921
+ };
922
+ } | {
923
+ type: 'lens flare';
924
+ filter: {
925
+ brightness: number;
926
+ position: {
927
+ x: number;
928
+ y: number;
929
+ };
930
+ lensType: '50-300mm zoom' | '32mm prime' | '105mm prime' | 'movie prime';
931
+ };
932
+ } | {
933
+ type: 'sharpen' | 'sharpen edges' | 'sharpen more';
934
+ } | {
935
+ type: 'smart sharpen';
936
+ filter: {
937
+ amount: number;
938
+ radius: UnitsValue;
939
+ threshold: number;
940
+ angle: number;
941
+ moreAccurate: boolean;
942
+ blur: 'gaussian blur' | 'lens blur' | 'motion blur';
943
+ preset: string;
944
+ shadow: {
945
+ fadeAmount: number;
946
+ tonalWidth: number;
947
+ radius: number;
948
+ };
949
+ highlight: {
950
+ fadeAmount: number;
951
+ tonalWidth: number;
952
+ radius: number;
953
+ };
954
+ };
955
+ } | {
956
+ type: 'unsharp mask';
957
+ filter: {
958
+ amount: number;
959
+ radius: UnitsValue;
960
+ threshold: number;
961
+ };
962
+ } | {
963
+ type: 'diffuse';
964
+ filter: {
965
+ mode: 'normal' | 'darken only' | 'lighten only' | 'anisotropic';
966
+ randomSeed: number;
967
+ };
968
+ } | {
969
+ type: 'emboss';
970
+ filter: {
971
+ angle: number;
972
+ height: number;
973
+ amount: number;
974
+ };
975
+ } | {
976
+ type: 'extrude';
977
+ filter: {
978
+ type: 'blocks' | 'pyramids';
979
+ size: number;
980
+ depth: number;
981
+ depthMode: 'random' | 'level-based';
982
+ randomSeed: number;
983
+ solidFrontFaces: boolean;
984
+ maskIncompleteBlocks: boolean;
985
+ };
986
+ } | {
987
+ type: 'find edges' | 'solarize';
988
+ } | {
989
+ type: 'tiles';
990
+ filter: {
991
+ numberOfTiles: number;
992
+ maximumOffset: number;
993
+ fillEmptyAreaWith: 'background color' | 'foreground color' | 'inverse image' | 'unaltered image';
994
+ randomSeed: number;
995
+ };
996
+ } | {
997
+ type: 'trace contour';
998
+ filter: {
999
+ level: number;
1000
+ edge: 'lower' | 'upper';
1001
+ };
1002
+ } | {
1003
+ type: 'wind';
1004
+ filter: {
1005
+ method: 'wind' | 'blast' | 'stagger';
1006
+ direction: 'left' | 'right';
1007
+ };
1008
+ } | {
1009
+ type: 'de-interlace';
1010
+ filter: {
1011
+ eliminate: 'odd lines' | 'even lines';
1012
+ newFieldsBy: 'duplication' | 'interpolation';
1013
+ };
1014
+ } | {
1015
+ type: 'ntsc colors';
1016
+ } | {
1017
+ type: 'custom';
1018
+ filter: {
1019
+ scale: number;
1020
+ offset: number;
1021
+ matrix: number[];
1022
+ };
1023
+ } | {
1024
+ type: 'high pass' | 'maximum' | 'minimum';
1025
+ filter: {
1026
+ radius: UnitsValue;
1027
+ };
1028
+ } | {
1029
+ type: 'offset';
1030
+ filter: {
1031
+ horizontal: number;
1032
+ vertical: number;
1033
+ undefinedAreas: 'set to transparent' | 'repeat edge pixels' | 'wrap around';
1034
+ };
1035
+ } | {
1036
+ type: 'puppet';
1037
+ filter: {
1038
+ rigidType: boolean;
1039
+ bounds: {
1040
+ x: number;
1041
+ y: number;
1042
+ }[];
1043
+ puppetShapeList: {
1044
+ rigidType: boolean;
1045
+ originalVertexArray: {
1046
+ x: number;
1047
+ y: number;
1048
+ }[];
1049
+ deformedVertexArray: {
1050
+ x: number;
1051
+ y: number;
1052
+ }[];
1053
+ indexArray: number[];
1054
+ pinOffsets: {
1055
+ x: number;
1056
+ y: number;
1057
+ }[];
1058
+ posFinalPins: {
1059
+ x: number;
1060
+ y: number;
1061
+ }[];
1062
+ pinVertexIndices: number[];
1063
+ selectedPin: number[];
1064
+ pinPosition: {
1065
+ x: number;
1066
+ y: number;
1067
+ }[];
1068
+ pinRotation: number[];
1069
+ pinOverlay: boolean[];
1070
+ pinDepth: number[];
1071
+ meshQuality: number;
1072
+ meshExpansion: number;
1073
+ meshRigidity: number;
1074
+ imageResolution: number;
1075
+ meshBoundaryPath: {
1076
+ pathComponents: {
1077
+ shapeOperation: string;
1078
+ paths: {
1079
+ closed: boolean;
1080
+ points: {
1081
+ anchor: {
1082
+ x: UnitsValue;
1083
+ y: UnitsValue;
1084
+ };
1085
+ forward: {
1086
+ x: UnitsValue;
1087
+ y: UnitsValue;
1088
+ };
1089
+ backward: {
1090
+ x: UnitsValue;
1091
+ y: UnitsValue;
1092
+ };
1093
+ smooth: boolean;
1094
+ }[];
1095
+ }[];
1096
+ }[];
1097
+ };
1098
+ }[];
1099
+ };
1100
+ } | {
1101
+ type: 'oil paint plugin';
1102
+ filter: {
1103
+ name: string;
1104
+ gpu: boolean;
1105
+ lighting: boolean;
1106
+ parameters: {
1107
+ name: string;
1108
+ value: number;
1109
+ }[];
1110
+ };
1111
+ } | {
1112
+ type: 'hsb/hsl';
1113
+ filter: {
1114
+ inputMode: 'rgb' | 'hsb' | 'hsl';
1115
+ rowOrder: 'rgb' | 'hsb' | 'hsl';
1116
+ };
1117
+ } | {
1118
+ type: 'oil paint';
1119
+ filter: {
1120
+ lightingOn: boolean;
1121
+ stylization: number;
1122
+ cleanliness: number;
1123
+ brushScale: number;
1124
+ microBrush: number;
1125
+ lightDirection: number;
1126
+ specularity: number;
1127
+ };
1128
+ } | {
1129
+ type: 'liquify';
1130
+ filter: {
1131
+ liquifyMesh: Uint8Array;
1132
+ };
1133
+ } | {
1134
+ type: 'perspective warp';
1135
+ filter: {
1136
+ quads: number[][];
1137
+ vertices: {
1138
+ x: UnitsValue;
1139
+ y: UnitsValue;
1140
+ }[];
1141
+ warpedVertices: {
1142
+ x: UnitsValue;
1143
+ y: UnitsValue;
1144
+ }[];
1145
+ };
1146
+ } | {
1147
+ type: 'curves';
1148
+ filter: {
1149
+ presetKind: 'custom' | 'default';
1150
+ adjustments?: ({
1151
+ channels: ('composite' | 'red' | 'green' | 'blue')[];
1152
+ curve: {
1153
+ x: number;
1154
+ y: number;
1155
+ curved?: boolean;
1156
+ }[];
1157
+ } | {
1158
+ channels: ('composite' | 'red' | 'green' | 'blue')[];
1159
+ values: number[];
1160
+ })[];
1161
+ };
1162
+ } | {
1163
+ type: 'invert';
1164
+ } | {
1165
+ type: 'brightness/contrast';
1166
+ filter: {
1167
+ brightness: number;
1168
+ contrast: number;
1169
+ useLegacy: boolean;
1170
+ };
1171
+ };
1172
+ export type Filter = FilterVariant & {
1173
+ name: string;
1174
+ opacity: number;
1175
+ blendMode: BlendMode;
1176
+ enabled: boolean;
1177
+ hasOptions: boolean;
1178
+ foregroundColor: Color;
1179
+ backgroundColor: Color;
1180
+ };
1181
+ export interface PlacedLayerFilter {
1182
+ enabled: boolean;
1183
+ validAtPosition: boolean;
1184
+ maskEnabled: boolean;
1185
+ maskLinked: boolean;
1186
+ maskExtendWithWhite: boolean;
1187
+ list: Filter[];
1188
+ }
1189
+ export type PlacedLayerType = 'unknown' | 'vector' | 'raster' | 'image stack';
1190
+ export interface PlacedLayer {
1191
+ id: string;
1192
+ placed?: string;
1193
+ type: PlacedLayerType;
1194
+ pageNumber?: number;
1195
+ totalPages?: number;
1196
+ frameStep?: {
1197
+ numerator: number;
1198
+ denominator: number;
1199
+ };
1200
+ duration?: {
1201
+ numerator: number;
1202
+ denominator: number;
1203
+ };
1204
+ frameCount?: number;
1205
+ transform: number[];
1206
+ nonAffineTransform?: number[];
1207
+ width?: number;
1208
+ height?: number;
1209
+ resolution?: UnitsValue;
1210
+ warp?: Warp;
1211
+ crop?: number;
1212
+ comp?: number;
1213
+ compInfo?: {
1214
+ compID: number;
1215
+ originalCompID: number;
1216
+ };
1217
+ filter?: PlacedLayerFilter;
1218
+ }
1219
+ export type AdjustmentLayer = BrightnessAdjustment | LevelsAdjustment | CurvesAdjustment | ExposureAdjustment | VibranceAdjustment | HueSaturationAdjustment | ColorBalanceAdjustment | BlackAndWhiteAdjustment | PhotoFilterAdjustment | ChannelMixerAdjustment | ColorLookupAdjustment | InvertAdjustment | PosterizeAdjustment | ThresholdAdjustment | GradientMapAdjustment | SelectiveColorAdjustment;
1220
+ export type LayerColor = 'none' | 'red' | 'orange' | 'yellow' | 'green' | 'blue' | 'violet' | 'gray';
1221
+ export interface KeyDescriptorItem {
1222
+ keyShapeInvalidated?: boolean;
1223
+ keyOriginType?: number;
1224
+ keyOriginResolution?: number;
1225
+ keyOriginRRectRadii?: {
1226
+ topRight: UnitsValue;
1227
+ topLeft: UnitsValue;
1228
+ bottomLeft: UnitsValue;
1229
+ bottomRight: UnitsValue;
1230
+ };
1231
+ keyOriginShapeBoundingBox?: {
1232
+ top: UnitsValue;
1233
+ left: UnitsValue;
1234
+ bottom: UnitsValue;
1235
+ right: UnitsValue;
1236
+ };
1237
+ keyOriginBoxCorners?: {
1238
+ x: number;
1239
+ y: number;
1240
+ }[];
1241
+ transform?: number[];
1242
+ }
1243
+ export interface LayerVectorMask {
1244
+ invert?: boolean;
1245
+ notLink?: boolean;
1246
+ disable?: boolean;
1247
+ fillStartsWithAllPixels?: boolean;
1248
+ clipboard?: {
1249
+ top: number;
1250
+ left: number;
1251
+ bottom: number;
1252
+ right: number;
1253
+ resolution: number;
1254
+ };
1255
+ paths: BezierPath[];
1256
+ }
1257
+ export interface AnimationFrame {
1258
+ frames: number[];
1259
+ enable?: boolean;
1260
+ offset?: {
1261
+ x: number;
1262
+ y: number;
1263
+ };
1264
+ referencePoint?: {
1265
+ x: number;
1266
+ y: number;
1267
+ };
1268
+ opacity?: number;
1269
+ effects?: LayerEffectsInfo;
1270
+ }
1271
+ export interface Fraction {
1272
+ numerator: number;
1273
+ denominator: number;
1274
+ }
1275
+ export type TimelineKeyInterpolation = 'linear' | 'hold';
1276
+ export type TimelineKey = {
1277
+ interpolation: TimelineKeyInterpolation;
1278
+ time: Fraction;
1279
+ selected?: boolean;
1280
+ } & ({
1281
+ type: 'opacity';
1282
+ value: number;
1283
+ } | {
1284
+ type: 'position';
1285
+ x: number;
1286
+ y: number;
1287
+ } | {
1288
+ type: 'transform';
1289
+ scale: {
1290
+ x: number;
1291
+ y: number;
1292
+ };
1293
+ skew: {
1294
+ x: number;
1295
+ y: number;
1296
+ };
1297
+ rotation: number;
1298
+ translation: {
1299
+ x: number;
1300
+ y: number;
1301
+ };
1302
+ } | {
1303
+ type: 'style';
1304
+ style?: LayerEffectsInfo;
1305
+ } | {
1306
+ type: 'globalLighting';
1307
+ globalAngle: number;
1308
+ globalAltitude: number;
1309
+ });
1310
+ export type TimelineTrackType = 'opacity' | 'style' | 'sheetTransform' | 'sheetPosition' | 'globalLighting';
1311
+ export interface TimelineTrack {
1312
+ type: TimelineTrackType;
1313
+ enabled?: boolean;
1314
+ effectParams?: {
1315
+ keys: TimelineKey[];
1316
+ fillCanvas: boolean;
1317
+ zoomOrigin: number;
1318
+ };
1319
+ keys: TimelineKey[];
1320
+ }
1321
+ export interface Timeline {
1322
+ start: Fraction;
1323
+ duration: Fraction;
1324
+ inTime: Fraction;
1325
+ outTime: Fraction;
1326
+ autoScope: boolean;
1327
+ audioLevel: number;
1328
+ tracks?: TimelineTrack[];
1329
+ }
1330
+ export interface LayerAdditionalInfo {
1331
+ name?: string;
1332
+ nameSource?: string;
1333
+ id?: number;
1334
+ version?: number;
1335
+ mask?: LayerMaskData;
1336
+ realMask?: LayerMaskData;
1337
+ blendClippendElements?: boolean;
1338
+ blendInteriorElements?: boolean;
1339
+ knockout?: boolean;
1340
+ layerMaskAsGlobalMask?: boolean;
1341
+ protected?: {
1342
+ transparency?: boolean;
1343
+ composite?: boolean;
1344
+ position?: boolean;
1345
+ artboards?: boolean;
1346
+ };
1347
+ layerColor?: LayerColor;
1348
+ referencePoint?: {
1349
+ x: number;
1350
+ y: number;
1351
+ };
1352
+ sectionDivider?: {
1353
+ type: SectionDividerType;
1354
+ key?: string;
1355
+ subType?: number;
1356
+ };
1357
+ filterMask?: {
1358
+ colorSpace: Color;
1359
+ opacity: number;
1360
+ };
1361
+ effects?: LayerEffectsInfo;
1362
+ text?: LayerTextData;
1363
+ patterns?: PatternInfo[];
1364
+ vectorFill?: VectorContent;
1365
+ vectorStroke?: {
1366
+ strokeEnabled?: boolean;
1367
+ fillEnabled?: boolean;
1368
+ lineWidth?: UnitsValue;
1369
+ lineDashOffset?: UnitsValue;
1370
+ miterLimit?: number;
1371
+ lineCapType?: LineCapType;
1372
+ lineJoinType?: LineJoinType;
1373
+ lineAlignment?: LineAlignment;
1374
+ scaleLock?: boolean;
1375
+ strokeAdjust?: boolean;
1376
+ lineDashSet?: UnitsValue[];
1377
+ blendMode?: BlendMode;
1378
+ opacity?: number;
1379
+ content?: VectorContent;
1380
+ resolution?: number;
1381
+ };
1382
+ vectorMask?: LayerVectorMask;
1383
+ usingAlignedRendering?: boolean;
1384
+ timestamp?: number;
1385
+ pathList?: {}[];
1386
+ adjustment?: AdjustmentLayer;
1387
+ placedLayer?: PlacedLayer;
1388
+ vectorOrigination?: {
1389
+ keyDescriptorList: KeyDescriptorItem[];
1390
+ };
1391
+ compositorUsed?: {
1392
+ version?: {
1393
+ major: number;
1394
+ minor: number;
1395
+ fix: number;
1396
+ };
1397
+ photoshopVersion?: {
1398
+ major: number;
1399
+ minor: number;
1400
+ fix: number;
1401
+ };
1402
+ description: string;
1403
+ reason: string;
1404
+ engine: string;
1405
+ enableCompCore?: string;
1406
+ enableCompCoreGPU?: string;
1407
+ enableCompCoreThreads?: string;
1408
+ compCoreSupport?: string;
1409
+ compCoreGPUSupport?: string;
1410
+ };
1411
+ artboard?: {
1412
+ rect: {
1413
+ top: number;
1414
+ left: number;
1415
+ bottom: number;
1416
+ right: number;
1417
+ };
1418
+ guideIndices?: any[];
1419
+ presetName?: string;
1420
+ color?: Color;
1421
+ backgroundType?: number;
1422
+ };
1423
+ fillOpacity?: number;
1424
+ transparencyShapesLayer?: boolean;
1425
+ channelBlendingRestrictions?: number[];
1426
+ animationFrames?: AnimationFrame[];
1427
+ animationFrameFlags?: {
1428
+ propagateFrameOne?: boolean;
1429
+ unifyLayerPosition?: boolean;
1430
+ unifyLayerStyle?: boolean;
1431
+ unifyLayerVisibility?: boolean;
1432
+ };
1433
+ timeline?: Timeline;
1434
+ filterEffectsMasks?: {
1435
+ id: string;
1436
+ top: number;
1437
+ left: number;
1438
+ bottom: number;
1439
+ right: number;
1440
+ depth: number;
1441
+ channels: ({
1442
+ compressionMode: number;
1443
+ data: Uint8Array;
1444
+ } | undefined)[];
1445
+ extra?: {
1446
+ top: number;
1447
+ left: number;
1448
+ bottom: number;
1449
+ right: number;
1450
+ compressionMode: number;
1451
+ data: Uint8Array;
1452
+ };
1453
+ }[];
1454
+ comps?: {
1455
+ originalEffectsReferencePoint?: {
1456
+ x: number;
1457
+ y: number;
1458
+ };
1459
+ settings: {
1460
+ enabled?: boolean;
1461
+ compList: number[];
1462
+ offset?: {
1463
+ x: number;
1464
+ y: number;
1465
+ };
1466
+ effectsReferencePoint?: {
1467
+ x: number;
1468
+ y: number;
1469
+ };
1470
+ }[];
1471
+ };
1472
+ userMask?: {
1473
+ colorSpace: Color;
1474
+ opacity: number;
1475
+ };
1476
+ blendingRanges?: {
1477
+ compositeGrayBlendSource: number[];
1478
+ compositeGraphBlendDestinationRange: number[];
1479
+ ranges: {
1480
+ sourceRange: number[];
1481
+ destRange: number[];
1482
+ }[];
1483
+ };
1484
+ vowv?: number;
1485
+ pixelSource?: {
1486
+ type: 'vdPS';
1487
+ origin: {
1488
+ x: number;
1489
+ y: number;
1490
+ };
1491
+ interpretation: {
1492
+ interpretAlpha: string;
1493
+ profile: Uint8Array;
1494
+ };
1495
+ frameReader: {
1496
+ type: 'QTFR';
1497
+ link: {
1498
+ name: string;
1499
+ fullPath: string;
1500
+ originalPath: string;
1501
+ relativePath: string;
1502
+ alias: string;
1503
+ };
1504
+ mediaDescriptor: string;
1505
+ };
1506
+ showAlteredVideo: boolean;
1507
+ };
1508
+ engineData?: string;
1509
+ }
1510
+ export declare enum LayerCompCapturedInfo {
1511
+ None = 0,
1512
+ Visibility = 1,
1513
+ Position = 2,
1514
+ Appearance = 4
1515
+ }
1516
+ export interface ImageResources {
1517
+ layerState?: number;
1518
+ layerSelectionIds?: number[];
1519
+ versionInfo?: {
1520
+ hasRealMergedData: boolean;
1521
+ writerName: string;
1522
+ readerName: string;
1523
+ fileVersion: number;
1524
+ };
1525
+ alphaIdentifiers?: number[];
1526
+ alphaChannelNames?: string[];
1527
+ globalAngle?: number;
1528
+ globalAltitude?: number;
1529
+ pixelAspectRatio?: {
1530
+ aspect: number;
1531
+ };
1532
+ urlsList?: {
1533
+ id: number;
1534
+ ref: 'slice';
1535
+ url: string;
1536
+ }[];
1537
+ gridAndGuidesInformation?: {
1538
+ grid?: {
1539
+ horizontal: number;
1540
+ vertical: number;
1541
+ };
1542
+ guides?: {
1543
+ location: number;
1544
+ direction: 'horizontal' | 'vertical';
1545
+ }[];
1546
+ };
1547
+ resolutionInfo?: {
1548
+ horizontalResolution: number;
1549
+ horizontalResolutionUnit: 'PPI' | 'PPCM';
1550
+ widthUnit: 'Inches' | 'Centimeters' | 'Points' | 'Picas' | 'Columns';
1551
+ verticalResolution: number;
1552
+ verticalResolutionUnit: 'PPI' | 'PPCM';
1553
+ heightUnit: 'Inches' | 'Centimeters' | 'Points' | 'Picas' | 'Columns';
1554
+ };
1555
+ thumbnail?: HTMLCanvasElement;
1556
+ thumbnailRaw?: {
1557
+ width: number;
1558
+ height: number;
1559
+ data: Uint8Array;
1560
+ };
1561
+ captionDigest?: string;
1562
+ xmpMetadata?: string;
1563
+ printScale?: {
1564
+ style?: 'centered' | 'size to fit' | 'user defined';
1565
+ x?: number;
1566
+ y?: number;
1567
+ scale?: number;
1568
+ };
1569
+ printInformation?: {
1570
+ printerManagesColors?: boolean;
1571
+ printerName?: string;
1572
+ printerProfile?: string;
1573
+ printSixteenBit?: boolean;
1574
+ renderingIntent?: RenderingIntent;
1575
+ hardProof?: boolean;
1576
+ blackPointCompensation?: boolean;
1577
+ proofSetup?: {
1578
+ builtin: string;
1579
+ } | {
1580
+ profile: string;
1581
+ renderingIntent?: RenderingIntent;
1582
+ blackPointCompensation?: boolean;
1583
+ paperWhite?: boolean;
1584
+ };
1585
+ };
1586
+ backgroundColor?: Color;
1587
+ idsSeedNumber?: number;
1588
+ printFlags?: {
1589
+ labels?: boolean;
1590
+ cropMarks?: boolean;
1591
+ colorBars?: boolean;
1592
+ registrationMarks?: boolean;
1593
+ negative?: boolean;
1594
+ flip?: boolean;
1595
+ interpolate?: boolean;
1596
+ caption?: boolean;
1597
+ printFlags?: boolean;
1598
+ };
1599
+ iccUntaggedProfile?: boolean;
1600
+ pathSelectionState?: string[];
1601
+ imageReadyVariables?: string;
1602
+ imageReadyDataSets?: string;
1603
+ animations?: Animations;
1604
+ onionSkins?: {
1605
+ enabled: boolean;
1606
+ framesBefore: number;
1607
+ framesAfter: number;
1608
+ frameSpacing: number;
1609
+ minOpacity: number;
1610
+ maxOpacity: number;
1611
+ blendMode: BlendMode;
1612
+ };
1613
+ timelineInformation?: {
1614
+ enabled: boolean;
1615
+ frameStep: Fraction;
1616
+ frameRate: number;
1617
+ time: Fraction;
1618
+ duration: Fraction;
1619
+ workInTime: Fraction;
1620
+ workOutTime: Fraction;
1621
+ repeats: number;
1622
+ hasMotion: boolean;
1623
+ globalTracks: TimelineTrack[];
1624
+ audioClipGroups?: {
1625
+ id: string;
1626
+ muted: boolean;
1627
+ audioClips: {
1628
+ id: string;
1629
+ start: Fraction;
1630
+ duration: Fraction;
1631
+ inTime: Fraction;
1632
+ outTime: Fraction;
1633
+ muted: boolean;
1634
+ audioLevel: number;
1635
+ frameReader: {
1636
+ type: number;
1637
+ mediaDescriptor: string;
1638
+ link: {
1639
+ name: string;
1640
+ fullPath: string;
1641
+ relativePath: string;
1642
+ };
1643
+ };
1644
+ }[];
1645
+ }[];
1646
+ };
1647
+ sheetDisclosure?: {
1648
+ sheetTimelineOptions?: {
1649
+ sheetID: number;
1650
+ sheetDisclosed: boolean;
1651
+ lightsDisclosed: boolean;
1652
+ meshesDisclosed: boolean;
1653
+ materialsDisclosed: boolean;
1654
+ }[];
1655
+ };
1656
+ countInformation?: {
1657
+ color: RGB;
1658
+ name: string;
1659
+ size: number;
1660
+ fontSize: number;
1661
+ visible: boolean;
1662
+ points: {
1663
+ x: number;
1664
+ y: number;
1665
+ }[];
1666
+ }[];
1667
+ slices?: {
1668
+ bounds: {
1669
+ left: number;
1670
+ top: number;
1671
+ right: number;
1672
+ bottom: number;
1673
+ };
1674
+ groupName: string;
1675
+ slices: {
1676
+ id: number;
1677
+ groupId: number;
1678
+ origin: 'userGenerated' | 'autoGenerated' | 'layer';
1679
+ associatedLayerId: number;
1680
+ name?: string;
1681
+ type: 'image' | 'noImage';
1682
+ bounds: {
1683
+ left: number;
1684
+ top: number;
1685
+ right: number;
1686
+ bottom: number;
1687
+ };
1688
+ url: string;
1689
+ target: string;
1690
+ message: string;
1691
+ altTag: string;
1692
+ cellTextIsHTML: boolean;
1693
+ cellText: string;
1694
+ horizontalAlignment: 'default';
1695
+ verticalAlignment: 'default';
1696
+ backgroundColorType: 'none' | 'matte' | 'color';
1697
+ backgroundColor: RGBA;
1698
+ topOutset?: number;
1699
+ leftOutset?: number;
1700
+ bottomOutset?: number;
1701
+ rightOutset?: number;
1702
+ }[];
1703
+ }[];
1704
+ layerComps?: {
1705
+ list: {
1706
+ id: number;
1707
+ name: string;
1708
+ comment?: string;
1709
+ capturedInfo: LayerCompCapturedInfo;
1710
+ }[];
1711
+ lastApplied?: number;
1712
+ };
1713
+ copyrighted?: boolean;
1714
+ url?: string;
1715
+ }
1716
+ export interface GlobalLayerMaskInfo {
1717
+ overlayColorSpace: number;
1718
+ colorSpace1: number;
1719
+ colorSpace2: number;
1720
+ colorSpace3: number;
1721
+ colorSpace4: number;
1722
+ opacity: number;
1723
+ kind: number;
1724
+ }
1725
+ export interface Annotation {
1726
+ type: 'text' | 'sound';
1727
+ open: boolean;
1728
+ iconLocation: {
1729
+ left: number;
1730
+ top: number;
1731
+ right: number;
1732
+ bottom: number;
1733
+ };
1734
+ popupLocation: {
1735
+ left: number;
1736
+ top: number;
1737
+ right: number;
1738
+ bottom: number;
1739
+ };
1740
+ color: Color;
1741
+ author: string;
1742
+ name: string;
1743
+ date: string;
1744
+ data: string | Uint8Array;
1745
+ }
1746
+ export declare const enum ChannelID {
1747
+ Color0 = 0,// red (rgb) / cyan (cmyk)
1748
+ Color1 = 1,// green (rgb) / magenta (cmyk)
1749
+ Color2 = 2,// blue (rgb) / yellow (cmyk)
1750
+ Color3 = 3,// - (rgb) / black (cmyk)
1751
+ Transparency = -1,
1752
+ UserMask = -2,
1753
+ RealUserMask = -3
1754
+ }
1755
+ export declare const enum Compression {
1756
+ RawData = 0,
1757
+ RleCompressed = 1,
1758
+ ZipWithoutPrediction = 2,
1759
+ ZipWithPrediction = 3
1760
+ }
1761
+ export interface LayerRawDataChannel {
1762
+ id: ChannelID;
1763
+ compression: Compression;
1764
+ data: Uint8Array | undefined;
1765
+ }
1766
+ export interface LayerRawData {
1767
+ colorMode: ColorMode;
1768
+ bitsPerChannel: number;
1769
+ channels: LayerRawDataChannel[];
1770
+ large: boolean;
1771
+ }
1772
+ export interface Layer extends LayerAdditionalInfo {
1773
+ top?: number;
1774
+ left?: number;
1775
+ bottom?: number;
1776
+ right?: number;
1777
+ blendMode?: BlendMode;
1778
+ opacity?: number;
1779
+ transparencyProtected?: boolean;
1780
+ effectsOpen?: boolean;
1781
+ hidden?: boolean;
1782
+ clipping?: boolean;
1783
+ canvas?: HTMLCanvasElement;
1784
+ imageData?: PixelData;
1785
+ rawData?: LayerRawData;
1786
+ children?: Layer[];
1787
+ /** Applies only for layer groups. */
1788
+ opened?: boolean;
1789
+ linkGroup?: number;
1790
+ linkGroupEnabled?: boolean;
1791
+ }
1792
+ export interface Psd extends LayerAdditionalInfo {
1793
+ width: number;
1794
+ height: number;
1795
+ channels?: number;
1796
+ bitsPerChannel?: number;
1797
+ colorMode?: ColorMode;
1798
+ palette?: RGB[];
1799
+ children?: Layer[];
1800
+ canvas?: HTMLCanvasElement;
1801
+ imageData?: PixelData;
1802
+ rawCompositeData?: Uint8Array;
1803
+ imageResources?: ImageResources;
1804
+ linkedFiles?: LinkedFile[];
1805
+ artboards?: {
1806
+ count: number;
1807
+ autoExpandOffset?: {
1808
+ horizontal: number;
1809
+ vertical: number;
1810
+ };
1811
+ origin?: {
1812
+ horizontal: number;
1813
+ vertical: number;
1814
+ };
1815
+ autoExpandEnabled?: boolean;
1816
+ autoNestEnabled?: boolean;
1817
+ autoPositionEnabled?: boolean;
1818
+ shrinkwrapOnSaveEnabled?: boolean;
1819
+ docDefaultNewArtboardBackgroundColor?: Color;
1820
+ docDefaultNewArtboardBackgroundType?: number;
1821
+ };
1822
+ globalLayerMaskInfo?: GlobalLayerMaskInfo;
1823
+ annotations?: Annotation[];
1824
+ }
1825
+ export interface ReadOptions {
1826
+ /** Does not load layer image data. */
1827
+ skipLayerImageData?: boolean;
1828
+ /** Does not load composite image data. */
1829
+ skipCompositeImageData?: boolean;
1830
+ /** Does not load thumbnail. */
1831
+ skipThumbnail?: boolean;
1832
+ /** Does not load linked files (used in smart-objects). */
1833
+ skipLinkedFilesData?: boolean;
1834
+ /** Total memory limit to use when decoding bitmaps (default: 2GB). */
1835
+ totalMemoryLimit?: number;
1836
+ /** Throws exception if features are missing. */
1837
+ throwForMissingFeatures?: boolean;
1838
+ /** Logs if features are missing. */
1839
+ logMissingFeatures?: boolean;
1840
+ /** Keep image data as byte array instead of canvas.
1841
+ * (image data will appear in `imageData` fields instead of `canvas` fields)
1842
+ * This avoids issues with canvas premultiplied alpha corrupting image data. */
1843
+ useImageData?: boolean;
1844
+ /** Skips decoding layer and composite bitmaps, they can be later decoded using helper functions */
1845
+ useRawData?: boolean;
1846
+ /** Loads thumbnail raw data instead of decoding it's content into canvas.
1847
+ * `thumnailRaw` field is used instead. */
1848
+ useRawThumbnail?: boolean;
1849
+ /** Used only for development. */
1850
+ logDevFeatures?: boolean;
1851
+ /** Used only for development. */
1852
+ strict?: boolean;
1853
+ /** Used only for development. */
1854
+ debug?: boolean;
1855
+ /** Used only for development. */
1856
+ log?: (...args: any[]) => void;
1857
+ }
1858
+ export interface WriteOptions {
1859
+ /** Automatically generates thumbnail from composite image. */
1860
+ generateThumbnail?: boolean;
1861
+ /** Trims transparent pixels from layer image data. */
1862
+ trimImageData?: boolean;
1863
+ /** Invalidates text layer data, forcing Photoshop to redraw them on load.
1864
+ * Use this option if you're updating loaded text layer properties. */
1865
+ invalidateTextLayers?: boolean;
1866
+ /** Logs if features are missing. */
1867
+ logMissingFeatures?: boolean;
1868
+ /** Forces bottom layer to be treated as layer and not background even when it's missing any transparency
1869
+ * (by default Photoshop treats bottom layer as background it it doesn't have any transparent pixels). */
1870
+ noBackground?: boolean;
1871
+ /** Saves document as PSB (Large Document Format) file. */
1872
+ psb?: boolean;
1873
+ /** Uses zip compression when writing PSD file, will result in smaller file size but may be incompatible
1874
+ * with some software. It may also be significantly slower. */
1875
+ compress?: boolean;
1876
+ }
1877
+ export {};