ag-psd 15.0.0 → 15.0.2

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 (102) hide show
  1. package/TODO +0 -2
  2. package/clean.js +3 -0
  3. package/dist/abr.d.ts +132 -132
  4. package/dist/abr.js +270 -271
  5. package/dist/abr.js.map +1 -0
  6. package/dist/additionalInfo.d.ts +25 -25
  7. package/dist/additionalInfo.js +2026 -2045
  8. package/dist/additionalInfo.js.map +1 -0
  9. package/dist/bundle.js +9133 -8707
  10. package/dist/csh.d.ts +10 -10
  11. package/dist/csh.js +48 -49
  12. package/dist/csh.js.map +1 -0
  13. package/dist/descriptor.d.ts +411 -390
  14. package/dist/descriptor.js +1689 -1644
  15. package/dist/descriptor.js.map +1 -0
  16. package/dist/effectsHelpers.d.ts +5 -5
  17. package/dist/effectsHelpers.js +309 -310
  18. package/dist/effectsHelpers.js.map +1 -0
  19. package/dist/engineData.d.ts +2 -2
  20. package/dist/engineData.js +337 -338
  21. package/dist/engineData.js.map +1 -0
  22. package/dist/helpers.d.ts +93 -93
  23. package/dist/helpers.js +332 -333
  24. package/dist/helpers.js.map +1 -0
  25. package/dist/imageResources.d.ts +13 -13
  26. package/dist/imageResources.js +1007 -788
  27. package/dist/imageResources.js.map +1 -0
  28. package/dist/index.d.ts +20 -20
  29. package/dist/index.js +53 -54
  30. package/dist/index.js.map +1 -0
  31. package/dist/initializeCanvas.d.ts +1 -1
  32. package/dist/initializeCanvas.js +26 -27
  33. package/dist/initializeCanvas.js.map +1 -0
  34. package/dist/jpeg.d.ts +1 -1
  35. package/dist/jpeg.js +1019 -1020
  36. package/dist/jpeg.js.map +1 -0
  37. package/dist/psd.d.ts +1200 -1147
  38. package/dist/psd.js +22 -23
  39. package/dist/psd.js.map +1 -0
  40. package/dist/psdReader.d.ts +36 -34
  41. package/dist/psdReader.js +958 -941
  42. package/dist/psdReader.js.map +1 -0
  43. package/dist/psdWriter.d.ts +27 -27
  44. package/dist/psdWriter.js +694 -690
  45. package/dist/psdWriter.js.map +1 -0
  46. package/dist/text.d.ts +168 -168
  47. package/dist/text.js +557 -558
  48. package/dist/text.js.map +1 -0
  49. package/dist/utf8.d.ts +5 -5
  50. package/dist/utf8.js +152 -153
  51. package/dist/utf8.js.map +1 -0
  52. package/dist-es/abr.d.ts +132 -132
  53. package/dist-es/abr.js +266 -267
  54. package/dist-es/abr.js.map +1 -0
  55. package/dist-es/additionalInfo.d.ts +25 -25
  56. package/dist-es/additionalInfo.js +2020 -2039
  57. package/dist-es/additionalInfo.js.map +1 -0
  58. package/dist-es/csh.d.ts +10 -10
  59. package/dist-es/csh.js +44 -45
  60. package/dist-es/csh.js.map +1 -0
  61. package/dist-es/descriptor.d.ts +411 -390
  62. package/dist-es/descriptor.js +1661 -1616
  63. package/dist-es/descriptor.js.map +1 -0
  64. package/dist-es/effectsHelpers.d.ts +5 -5
  65. package/dist-es/effectsHelpers.js +304 -305
  66. package/dist-es/effectsHelpers.js.map +1 -0
  67. package/dist-es/engineData.d.ts +2 -2
  68. package/dist-es/engineData.js +332 -333
  69. package/dist-es/engineData.js.map +1 -0
  70. package/dist-es/helpers.d.ts +93 -93
  71. package/dist-es/helpers.js +315 -316
  72. package/dist-es/helpers.js.map +1 -0
  73. package/dist-es/imageResources.d.ts +13 -13
  74. package/dist-es/imageResources.js +1004 -785
  75. package/dist-es/imageResources.js.map +1 -0
  76. package/dist-es/index.d.ts +20 -20
  77. package/dist-es/index.js +31 -32
  78. package/dist-es/index.js.map +1 -0
  79. package/dist-es/initializeCanvas.d.ts +1 -1
  80. package/dist-es/initializeCanvas.js +22 -23
  81. package/dist-es/initializeCanvas.js.map +1 -0
  82. package/dist-es/jpeg.d.ts +1 -1
  83. package/dist-es/jpeg.js +1015 -1016
  84. package/dist-es/jpeg.js.map +1 -0
  85. package/dist-es/psd.d.ts +1200 -1147
  86. package/dist-es/psd.js +19 -20
  87. package/dist-es/psd.js.map +1 -0
  88. package/dist-es/psdReader.d.ts +36 -34
  89. package/dist-es/psdReader.js +928 -912
  90. package/dist-es/psdReader.js.map +1 -0
  91. package/dist-es/psdWriter.d.ts +27 -27
  92. package/dist-es/psdWriter.js +670 -666
  93. package/dist-es/psdWriter.js.map +1 -0
  94. package/dist-es/text.d.ts +168 -168
  95. package/dist-es/text.js +552 -553
  96. package/dist-es/text.js.map +1 -0
  97. package/dist-es/utf8.d.ts +5 -5
  98. package/dist-es/utf8.js +145 -146
  99. package/dist-es/utf8.js.map +1 -0
  100. package/package.json +11 -17
  101. package/tsconfig-es6.json +7 -0
  102. package/tsconfig.json +7 -1
package/dist-es/psd.d.ts CHANGED
@@ -1,1147 +1,1200 @@
1
- export declare 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 declare type RGBA = {
19
- r: number;
20
- g: number;
21
- b: number;
22
- a: number;
23
- };
24
- export declare type RGB = {
25
- r: number;
26
- g: number;
27
- b: number;
28
- };
29
- export declare type HSB = {
30
- h: number;
31
- s: number;
32
- b: number;
33
- };
34
- export declare type CMYK = {
35
- c: number;
36
- m: number;
37
- y: number;
38
- k: number;
39
- };
40
- export declare type LAB = {
41
- l: number;
42
- a: number;
43
- b: number;
44
- };
45
- export declare type Grayscale = {
46
- k: number;
47
- };
48
- export declare type Color = RGBA | RGB | HSB | CMYK | LAB | Grayscale;
49
- export interface EffectContour {
50
- name: string;
51
- curve: {
52
- x: number;
53
- y: number;
54
- }[];
55
- }
56
- export interface EffectPattern {
57
- name: string;
58
- id: string;
59
- }
60
- export interface LayerEffectShadow {
61
- present?: boolean;
62
- showInDialog?: boolean;
63
- enabled?: boolean;
64
- size?: UnitsValue;
65
- angle?: number;
66
- distance?: UnitsValue;
67
- color?: Color;
68
- blendMode?: BlendMode;
69
- opacity?: number;
70
- useGlobalLight?: boolean;
71
- antialiased?: boolean;
72
- contour?: EffectContour;
73
- choke?: UnitsValue;
74
- layerConceals?: boolean;
75
- }
76
- export interface LayerEffectsOuterGlow {
77
- present?: boolean;
78
- showInDialog?: boolean;
79
- enabled?: boolean;
80
- size?: UnitsValue;
81
- color?: Color;
82
- blendMode?: BlendMode;
83
- opacity?: number;
84
- source?: GlowSource;
85
- antialiased?: boolean;
86
- noise?: number;
87
- range?: number;
88
- choke?: UnitsValue;
89
- jitter?: number;
90
- contour?: EffectContour;
91
- }
92
- export interface LayerEffectInnerGlow {
93
- present?: boolean;
94
- showInDialog?: boolean;
95
- enabled?: boolean;
96
- size?: UnitsValue;
97
- color?: Color;
98
- blendMode?: BlendMode;
99
- opacity?: number;
100
- source?: GlowSource;
101
- technique?: GlowTechnique;
102
- antialiased?: boolean;
103
- noise?: number;
104
- range?: number;
105
- choke?: UnitsValue;
106
- jitter?: number;
107
- contour?: EffectContour;
108
- }
109
- export interface LayerEffectBevel {
110
- present?: boolean;
111
- showInDialog?: boolean;
112
- enabled?: boolean;
113
- size?: UnitsValue;
114
- angle?: number;
115
- strength?: number;
116
- highlightBlendMode?: BlendMode;
117
- shadowBlendMode?: BlendMode;
118
- highlightColor?: Color;
119
- shadowColor?: Color;
120
- style?: BevelStyle;
121
- highlightOpacity?: number;
122
- shadowOpacity?: number;
123
- soften?: UnitsValue;
124
- useGlobalLight?: boolean;
125
- altitude?: number;
126
- technique?: BevelTechnique;
127
- direction?: BevelDirection;
128
- useTexture?: boolean;
129
- useShape?: boolean;
130
- antialiasGloss?: boolean;
131
- contour?: EffectContour;
132
- }
133
- export interface LayerEffectSolidFill {
134
- present?: boolean;
135
- showInDialog?: boolean;
136
- enabled?: boolean;
137
- blendMode?: BlendMode;
138
- color?: Color;
139
- opacity?: number;
140
- }
141
- export interface LayerEffectStroke {
142
- present?: boolean;
143
- showInDialog?: boolean;
144
- enabled?: boolean;
145
- overprint?: boolean;
146
- size?: UnitsValue;
147
- position?: 'inside' | 'center' | 'outside';
148
- fillType?: 'color' | 'gradient' | 'pattern';
149
- blendMode?: BlendMode;
150
- opacity?: number;
151
- color?: Color;
152
- gradient?: (EffectSolidGradient | EffectNoiseGradient) & ExtraGradientInfo;
153
- pattern?: EffectPattern & {};
154
- }
155
- export interface LayerEffectSatin {
156
- present?: boolean;
157
- showInDialog?: boolean;
158
- enabled?: boolean;
159
- size?: UnitsValue;
160
- blendMode?: BlendMode;
161
- color?: Color;
162
- antialiased?: boolean;
163
- opacity?: number;
164
- distance?: UnitsValue;
165
- invert?: boolean;
166
- angle?: number;
167
- contour?: EffectContour;
168
- }
169
- export interface LayerEffectPatternOverlay {
170
- present?: boolean;
171
- showInDialog?: boolean;
172
- enabled?: boolean;
173
- blendMode?: BlendMode;
174
- opacity?: number;
175
- scale?: number;
176
- pattern?: EffectPattern;
177
- phase?: {
178
- x: number;
179
- y: number;
180
- };
181
- align?: boolean;
182
- }
183
- export interface EffectSolidGradient {
184
- name: string;
185
- type: 'solid';
186
- smoothness?: number;
187
- colorStops: ColorStop[];
188
- opacityStops: OpacityStop[];
189
- }
190
- export interface EffectNoiseGradient {
191
- name: string;
192
- type: 'noise';
193
- roughness?: number;
194
- colorModel?: 'rgb' | 'hsb' | 'lab';
195
- randomSeed?: number;
196
- restrictColors?: boolean;
197
- addTransparency?: boolean;
198
- min: number[];
199
- max: number[];
200
- }
201
- export interface LayerEffectGradientOverlay {
202
- present?: boolean;
203
- showInDialog?: boolean;
204
- enabled?: boolean;
205
- blendMode?: string;
206
- opacity?: number;
207
- align?: boolean;
208
- scale?: number;
209
- dither?: boolean;
210
- reverse?: boolean;
211
- type?: GradientStyle;
212
- offset?: {
213
- x: number;
214
- y: number;
215
- };
216
- gradient?: EffectSolidGradient | EffectNoiseGradient;
217
- interpolationMethod?: InterpolationMethod;
218
- }
219
- export interface LayerEffectsInfo {
220
- disabled?: boolean;
221
- scale?: number;
222
- dropShadow?: LayerEffectShadow[];
223
- innerShadow?: LayerEffectShadow[];
224
- outerGlow?: LayerEffectsOuterGlow;
225
- innerGlow?: LayerEffectInnerGlow;
226
- bevel?: LayerEffectBevel;
227
- solidFill?: LayerEffectSolidFill[];
228
- satin?: LayerEffectSatin;
229
- stroke?: LayerEffectStroke[];
230
- gradientOverlay?: LayerEffectGradientOverlay[];
231
- patternOverlay?: LayerEffectPatternOverlay;
232
- }
233
- export interface LayerMaskData {
234
- top?: number;
235
- left?: number;
236
- bottom?: number;
237
- right?: number;
238
- defaultColor?: number;
239
- disabled?: boolean;
240
- positionRelativeToLayer?: boolean;
241
- fromVectorData?: boolean;
242
- userMaskDensity?: number;
243
- userMaskFeather?: number;
244
- vectorMaskDensity?: number;
245
- vectorMaskFeather?: number;
246
- canvas?: HTMLCanvasElement;
247
- imageData?: ImageData;
248
- }
249
- export declare type TextGridding = 'none' | 'round';
250
- export declare type Orientation = 'horizontal' | 'vertical';
251
- export declare type AntiAlias = 'none' | 'sharp' | 'crisp' | 'strong' | 'smooth' | 'platform' | 'platformLCD';
252
- export declare type WarpStyle = 'none' | 'arc' | 'arcLower' | 'arcUpper' | 'arch' | 'bulge' | 'shellLower' | 'shellUpper' | 'flag' | 'wave' | 'fish' | 'rise' | 'fisheye' | 'inflate' | 'squeeze' | 'twist' | 'custom';
253
- export declare type BevelStyle = 'outer bevel' | 'inner bevel' | 'emboss' | 'pillow emboss' | 'stroke emboss';
254
- export declare type BevelTechnique = 'smooth' | 'chisel hard' | 'chisel soft';
255
- export declare type BevelDirection = 'up' | 'down';
256
- export declare type GlowTechnique = 'softer' | 'precise';
257
- export declare type GlowSource = 'edge' | 'center';
258
- export declare type GradientStyle = 'linear' | 'radial' | 'angle' | 'reflected' | 'diamond';
259
- export declare type Justification = 'left' | 'right' | 'center';
260
- export declare type LineCapType = 'butt' | 'round' | 'square';
261
- export declare type LineJoinType = 'miter' | 'round' | 'bevel';
262
- export declare type LineAlignment = 'inside' | 'center' | 'outside';
263
- export declare type InterpolationMethod = 'classic' | 'perceptual' | 'linear';
264
- export interface Warp {
265
- style?: WarpStyle;
266
- value?: number;
267
- perspective?: number;
268
- perspectiveOther?: number;
269
- rotate?: Orientation;
270
- bounds?: {
271
- top: UnitsValue;
272
- left: UnitsValue;
273
- bottom: UnitsValue;
274
- right: UnitsValue;
275
- };
276
- uOrder?: number;
277
- vOrder?: number;
278
- deformNumRows?: number;
279
- deformNumCols?: number;
280
- customEnvelopeWarp?: {
281
- quiltSliceX?: number[];
282
- quiltSliceY?: number[];
283
- meshPoints: {
284
- x: number;
285
- y: number;
286
- }[];
287
- };
288
- }
289
- export interface Animations {
290
- frames: {
291
- id: number;
292
- delay: number;
293
- dispose?: 'auto' | 'none' | 'dispose';
294
- }[];
295
- animations: {
296
- id: number;
297
- frames: number[];
298
- repeats?: number;
299
- activeFrame?: number;
300
- }[];
301
- }
302
- export interface Font {
303
- name: string;
304
- script?: number;
305
- type?: number;
306
- synthetic?: number;
307
- }
308
- export interface ParagraphStyle {
309
- justification?: Justification;
310
- firstLineIndent?: number;
311
- startIndent?: number;
312
- endIndent?: number;
313
- spaceBefore?: number;
314
- spaceAfter?: number;
315
- autoHyphenate?: boolean;
316
- hyphenatedWordSize?: number;
317
- preHyphen?: number;
318
- postHyphen?: number;
319
- consecutiveHyphens?: number;
320
- zone?: number;
321
- wordSpacing?: number[];
322
- letterSpacing?: number[];
323
- glyphSpacing?: number[];
324
- autoLeading?: number;
325
- leadingType?: number;
326
- hanging?: boolean;
327
- burasagari?: boolean;
328
- kinsokuOrder?: number;
329
- everyLineComposer?: boolean;
330
- }
331
- export interface ParagraphStyleRun {
332
- length: number;
333
- style: ParagraphStyle;
334
- }
335
- export interface TextStyle {
336
- font?: Font;
337
- fontSize?: number;
338
- fauxBold?: boolean;
339
- fauxItalic?: boolean;
340
- autoLeading?: boolean;
341
- leading?: number;
342
- horizontalScale?: number;
343
- verticalScale?: number;
344
- tracking?: number;
345
- autoKerning?: boolean;
346
- kerning?: number;
347
- baselineShift?: number;
348
- fontCaps?: number;
349
- fontBaseline?: number;
350
- underline?: boolean;
351
- strikethrough?: boolean;
352
- ligatures?: boolean;
353
- dLigatures?: boolean;
354
- baselineDirection?: number;
355
- tsume?: number;
356
- styleRunAlignment?: number;
357
- language?: number;
358
- noBreak?: boolean;
359
- fillColor?: Color;
360
- strokeColor?: Color;
361
- fillFlag?: boolean;
362
- strokeFlag?: boolean;
363
- fillFirst?: boolean;
364
- yUnderline?: number;
365
- outlineWidth?: number;
366
- characterDirection?: number;
367
- hindiNumbers?: boolean;
368
- kashida?: number;
369
- diacriticPos?: number;
370
- }
371
- export interface TextStyleRun {
372
- length: number;
373
- style: TextStyle;
374
- }
375
- export interface TextGridInfo {
376
- isOn?: boolean;
377
- show?: boolean;
378
- size?: number;
379
- leading?: number;
380
- color?: Color;
381
- leadingFillColor?: Color;
382
- alignLineHeightToGridFlags?: boolean;
383
- }
384
- export interface LayerTextData {
385
- text: string;
386
- transform?: number[];
387
- antiAlias?: AntiAlias;
388
- gridding?: TextGridding;
389
- orientation?: Orientation;
390
- index?: number;
391
- warp?: Warp;
392
- top?: number;
393
- left?: number;
394
- bottom?: number;
395
- right?: number;
396
- gridInfo?: TextGridInfo;
397
- useFractionalGlyphWidths?: boolean;
398
- style?: TextStyle;
399
- styleRuns?: TextStyleRun[];
400
- paragraphStyle?: ParagraphStyle;
401
- paragraphStyleRuns?: ParagraphStyleRun[];
402
- superscriptSize?: number;
403
- superscriptPosition?: number;
404
- subscriptSize?: number;
405
- subscriptPosition?: number;
406
- smallCapSize?: number;
407
- shapeType?: 'point' | 'box';
408
- pointBase?: number[];
409
- boxBounds?: number[];
410
- }
411
- export interface PatternInfo {
412
- name: string;
413
- id: string;
414
- x: number;
415
- y: number;
416
- bounds: {
417
- x: number;
418
- y: number;
419
- w: number;
420
- h: number;
421
- };
422
- data: Uint8Array;
423
- }
424
- export interface BezierKnot {
425
- linked: boolean;
426
- points: number[];
427
- }
428
- export declare type BooleanOperation = 'exclude' | 'combine' | 'subtract' | 'intersect';
429
- export interface BezierPath {
430
- open: boolean;
431
- operation: BooleanOperation;
432
- knots: BezierKnot[];
433
- }
434
- export interface ExtraGradientInfo {
435
- style?: GradientStyle;
436
- scale?: number;
437
- angle?: number;
438
- dither?: boolean;
439
- reverse?: boolean;
440
- align?: boolean;
441
- offset?: {
442
- x: number;
443
- y: number;
444
- };
445
- }
446
- export interface ExtraPatternInfo {
447
- linked?: boolean;
448
- phase?: {
449
- x: number;
450
- y: number;
451
- };
452
- }
453
- export declare type VectorContent = {
454
- type: 'color';
455
- color: Color;
456
- } | (EffectSolidGradient & ExtraGradientInfo) | (EffectNoiseGradient & ExtraGradientInfo) | (EffectPattern & {
457
- type: 'pattern';
458
- } & ExtraPatternInfo);
459
- export declare type RenderingIntent = 'perceptual' | 'saturation' | 'relative colorimetric' | 'absolute colorimetric';
460
- export declare type Units = 'Pixels' | 'Points' | 'Picas' | 'Millimeters' | 'Centimeters' | 'Inches' | 'None' | 'Density';
461
- export interface UnitsValue {
462
- units: Units;
463
- value: number;
464
- }
465
- export interface BrightnessAdjustment {
466
- type: 'brightness/contrast';
467
- brightness?: number;
468
- contrast?: number;
469
- meanValue?: number;
470
- useLegacy?: boolean;
471
- labColorOnly?: boolean;
472
- auto?: boolean;
473
- }
474
- export interface LevelsAdjustmentChannel {
475
- shadowInput: number;
476
- highlightInput: number;
477
- shadowOutput: number;
478
- highlightOutput: number;
479
- midtoneInput: number;
480
- }
481
- export interface PresetInfo {
482
- presetKind?: number;
483
- presetFileName?: string;
484
- }
485
- export interface LevelsAdjustment extends PresetInfo {
486
- type: 'levels';
487
- rgb?: LevelsAdjustmentChannel;
488
- red?: LevelsAdjustmentChannel;
489
- green?: LevelsAdjustmentChannel;
490
- blue?: LevelsAdjustmentChannel;
491
- }
492
- export declare type CurvesAdjustmentChannel = {
493
- input: number;
494
- output: number;
495
- }[];
496
- export interface CurvesAdjustment extends PresetInfo {
497
- type: 'curves';
498
- rgb?: CurvesAdjustmentChannel;
499
- red?: CurvesAdjustmentChannel;
500
- green?: CurvesAdjustmentChannel;
501
- blue?: CurvesAdjustmentChannel;
502
- }
503
- export interface ExposureAdjustment extends PresetInfo {
504
- type: 'exposure';
505
- exposure?: number;
506
- offset?: number;
507
- gamma?: number;
508
- }
509
- export interface VibranceAdjustment {
510
- type: 'vibrance';
511
- vibrance?: number;
512
- saturation?: number;
513
- }
514
- export interface HueSaturationAdjustmentChannel {
515
- a: number;
516
- b: number;
517
- c: number;
518
- d: number;
519
- hue: number;
520
- saturation: number;
521
- lightness: number;
522
- }
523
- export interface HueSaturationAdjustment extends PresetInfo {
524
- type: 'hue/saturation';
525
- master?: HueSaturationAdjustmentChannel;
526
- reds?: HueSaturationAdjustmentChannel;
527
- yellows?: HueSaturationAdjustmentChannel;
528
- greens?: HueSaturationAdjustmentChannel;
529
- cyans?: HueSaturationAdjustmentChannel;
530
- blues?: HueSaturationAdjustmentChannel;
531
- magentas?: HueSaturationAdjustmentChannel;
532
- }
533
- export interface ColorBalanceValues {
534
- cyanRed: number;
535
- magentaGreen: number;
536
- yellowBlue: number;
537
- }
538
- export interface ColorBalanceAdjustment {
539
- type: 'color balance';
540
- shadows?: ColorBalanceValues;
541
- midtones?: ColorBalanceValues;
542
- highlights?: ColorBalanceValues;
543
- preserveLuminosity?: boolean;
544
- }
545
- export interface BlackAndWhiteAdjustment extends PresetInfo {
546
- type: 'black & white';
547
- reds?: number;
548
- yellows?: number;
549
- greens?: number;
550
- cyans?: number;
551
- blues?: number;
552
- magentas?: number;
553
- useTint?: boolean;
554
- tintColor?: Color;
555
- }
556
- export interface PhotoFilterAdjustment {
557
- type: 'photo filter';
558
- color?: Color;
559
- density?: number;
560
- preserveLuminosity?: boolean;
561
- }
562
- export interface ChannelMixerChannel {
563
- red: number;
564
- green: number;
565
- blue: number;
566
- constant: number;
567
- }
568
- export interface ChannelMixerAdjustment extends PresetInfo {
569
- type: 'channel mixer';
570
- monochrome?: boolean;
571
- red?: ChannelMixerChannel;
572
- green?: ChannelMixerChannel;
573
- blue?: ChannelMixerChannel;
574
- gray?: ChannelMixerChannel;
575
- }
576
- export interface ColorLookupAdjustment {
577
- type: 'color lookup';
578
- lookupType?: '3dlut' | 'abstractProfile' | 'deviceLinkProfile';
579
- name?: string;
580
- dither?: boolean;
581
- profile?: Uint8Array;
582
- lutFormat?: 'look' | 'cube' | '3dl';
583
- dataOrder?: 'rgb' | 'bgr';
584
- tableOrder?: 'rgb' | 'bgr';
585
- lut3DFileData?: Uint8Array;
586
- lut3DFileName?: string;
587
- }
588
- export interface InvertAdjustment {
589
- type: 'invert';
590
- }
591
- export interface PosterizeAdjustment {
592
- type: 'posterize';
593
- levels?: number;
594
- }
595
- export interface ThresholdAdjustment {
596
- type: 'threshold';
597
- level?: number;
598
- }
599
- export interface ColorStop {
600
- color: Color;
601
- location: number;
602
- midpoint: number;
603
- }
604
- export interface OpacityStop {
605
- opacity: number;
606
- location: number;
607
- midpoint: number;
608
- }
609
- export interface GradientMapAdjustment {
610
- type: 'gradient map';
611
- name?: string;
612
- gradientType: 'solid' | 'noise';
613
- dither?: boolean;
614
- reverse?: boolean;
615
- smoothness?: number;
616
- colorStops?: ColorStop[];
617
- opacityStops?: OpacityStop[];
618
- roughness?: number;
619
- colorModel?: 'rgb' | 'hsb' | 'lab';
620
- randomSeed?: number;
621
- restrictColors?: boolean;
622
- addTransparency?: boolean;
623
- min?: number[];
624
- max?: number[];
625
- }
626
- export interface SelectiveColorAdjustment {
627
- type: 'selective color';
628
- mode?: 'relative' | 'absolute';
629
- reds?: CMYK;
630
- yellows?: CMYK;
631
- greens?: CMYK;
632
- cyans?: CMYK;
633
- blues?: CMYK;
634
- magentas?: CMYK;
635
- whites?: CMYK;
636
- neutrals?: CMYK;
637
- blacks?: CMYK;
638
- }
639
- export interface LinkedFile {
640
- id: string;
641
- name: string;
642
- type?: string;
643
- creator?: string;
644
- data?: Uint8Array;
645
- time?: Date;
646
- descriptor?: {
647
- compInfo: {
648
- compID: number;
649
- originalCompID: number;
650
- };
651
- };
652
- childDocumentID?: string;
653
- assetModTime?: number;
654
- assetLockedState?: number;
655
- }
656
- export declare type PlacedLayerType = 'unknown' | 'vector' | 'raster' | 'image stack';
657
- export interface PlacedLayer {
658
- id: string;
659
- placed?: string;
660
- type: PlacedLayerType;
661
- pageNumber?: number;
662
- totalPages?: number;
663
- frameStep?: {
664
- numerator: number;
665
- denominator: number;
666
- };
667
- duration?: {
668
- numerator: number;
669
- denominator: number;
670
- };
671
- frameCount?: number;
672
- transform: number[];
673
- nonAffineTransform?: number[];
674
- width?: number;
675
- height?: number;
676
- resolution?: UnitsValue;
677
- warp?: Warp;
678
- crop?: number;
679
- comp?: number;
680
- compInfo?: {
681
- compID: number;
682
- originalCompID: number;
683
- };
684
- }
685
- export declare type AdjustmentLayer = BrightnessAdjustment | LevelsAdjustment | CurvesAdjustment | ExposureAdjustment | VibranceAdjustment | HueSaturationAdjustment | ColorBalanceAdjustment | BlackAndWhiteAdjustment | PhotoFilterAdjustment | ChannelMixerAdjustment | ColorLookupAdjustment | InvertAdjustment | PosterizeAdjustment | ThresholdAdjustment | GradientMapAdjustment | SelectiveColorAdjustment;
686
- export declare type LayerColor = 'none' | 'red' | 'orange' | 'yellow' | 'green' | 'blue' | 'violet' | 'gray';
687
- export interface KeyDescriptorItem {
688
- keyShapeInvalidated?: boolean;
689
- keyOriginType?: number;
690
- keyOriginResolution?: number;
691
- keyOriginRRectRadii?: {
692
- topRight: UnitsValue;
693
- topLeft: UnitsValue;
694
- bottomLeft: UnitsValue;
695
- bottomRight: UnitsValue;
696
- };
697
- keyOriginShapeBoundingBox?: {
698
- top: UnitsValue;
699
- left: UnitsValue;
700
- bottom: UnitsValue;
701
- right: UnitsValue;
702
- };
703
- keyOriginBoxCorners?: {
704
- x: number;
705
- y: number;
706
- }[];
707
- transform?: number[];
708
- }
709
- export interface LayerVectorMask {
710
- invert?: boolean;
711
- notLink?: boolean;
712
- disable?: boolean;
713
- fillStartsWithAllPixels?: boolean;
714
- clipboard?: {
715
- top: number;
716
- left: number;
717
- bottom: number;
718
- right: number;
719
- resolution: number;
720
- };
721
- paths: BezierPath[];
722
- }
723
- export interface AnimationFrame {
724
- frames: number[];
725
- enable?: boolean;
726
- offset?: {
727
- x: number;
728
- y: number;
729
- };
730
- referencePoint?: {
731
- x: number;
732
- y: number;
733
- };
734
- opacity?: number;
735
- effects?: LayerEffectsInfo;
736
- }
737
- export interface Fraction {
738
- numerator: number;
739
- denominator: number;
740
- }
741
- export declare type TimelineKeyInterpolation = 'linear' | 'hold';
742
- export declare type TimelineKey = {
743
- interpolation: TimelineKeyInterpolation;
744
- time: Fraction;
745
- selected?: boolean;
746
- } & ({
747
- type: 'opacity';
748
- value: number;
749
- } | {
750
- type: 'position';
751
- x: number;
752
- y: number;
753
- } | {
754
- type: 'transform';
755
- scale: {
756
- x: number;
757
- y: number;
758
- };
759
- skew: {
760
- x: number;
761
- y: number;
762
- };
763
- rotation: number;
764
- translation: {
765
- x: number;
766
- y: number;
767
- };
768
- } | {
769
- type: 'style';
770
- style?: LayerEffectsInfo;
771
- } | {
772
- type: 'globalLighting';
773
- globalAngle: number;
774
- globalAltitude: number;
775
- });
776
- export declare type TimelineTrackType = 'opacity' | 'style' | 'sheetTransform' | 'sheetPosition' | 'globalLighting';
777
- export interface TimelineTrack {
778
- type: TimelineTrackType;
779
- enabled?: boolean;
780
- effectParams?: {
781
- keys: TimelineKey[];
782
- fillCanvas: boolean;
783
- zoomOrigin: number;
784
- };
785
- keys: TimelineKey[];
786
- }
787
- export interface Timeline {
788
- start: Fraction;
789
- duration: Fraction;
790
- inTime: Fraction;
791
- outTime: Fraction;
792
- autoScope: boolean;
793
- audioLevel: number;
794
- tracks?: TimelineTrack[];
795
- }
796
- export interface LayerAdditionalInfo {
797
- name?: string;
798
- nameSource?: string;
799
- id?: number;
800
- version?: number;
801
- mask?: LayerMaskData;
802
- blendClippendElements?: boolean;
803
- blendInteriorElements?: boolean;
804
- knockout?: boolean;
805
- layerMaskAsGlobalMask?: boolean;
806
- protected?: {
807
- transparency?: boolean;
808
- composite?: boolean;
809
- position?: boolean;
810
- artboards?: boolean;
811
- };
812
- layerColor?: LayerColor;
813
- referencePoint?: {
814
- x: number;
815
- y: number;
816
- };
817
- sectionDivider?: {
818
- type: SectionDividerType;
819
- key?: string;
820
- subType?: number;
821
- };
822
- filterMask?: {
823
- colorSpace: Color;
824
- opacity: number;
825
- };
826
- effects?: LayerEffectsInfo;
827
- text?: LayerTextData;
828
- patterns?: PatternInfo[];
829
- vectorFill?: VectorContent;
830
- vectorStroke?: {
831
- strokeEnabled?: boolean;
832
- fillEnabled?: boolean;
833
- lineWidth?: UnitsValue;
834
- lineDashOffset?: UnitsValue;
835
- miterLimit?: number;
836
- lineCapType?: LineCapType;
837
- lineJoinType?: LineJoinType;
838
- lineAlignment?: LineAlignment;
839
- scaleLock?: boolean;
840
- strokeAdjust?: boolean;
841
- lineDashSet?: UnitsValue[];
842
- blendMode?: BlendMode;
843
- opacity?: number;
844
- content?: VectorContent;
845
- resolution?: number;
846
- };
847
- vectorMask?: LayerVectorMask;
848
- usingAlignedRendering?: boolean;
849
- timestamp?: number;
850
- pathList?: {}[];
851
- adjustment?: AdjustmentLayer;
852
- placedLayer?: PlacedLayer;
853
- vectorOrigination?: {
854
- keyDescriptorList: KeyDescriptorItem[];
855
- };
856
- compositorUsed?: {
857
- description: string;
858
- reason: string;
859
- engine: string;
860
- enableCompCore: string;
861
- enableCompCoreGPU: string;
862
- compCoreSupport: string;
863
- compCoreGPUSupport: string;
864
- };
865
- artboard?: {
866
- rect: {
867
- top: number;
868
- left: number;
869
- bottom: number;
870
- right: number;
871
- };
872
- guideIndices?: any[];
873
- presetName?: string;
874
- color?: Color;
875
- backgroundType?: number;
876
- };
877
- fillOpacity?: number;
878
- transparencyShapesLayer?: boolean;
879
- channelBlendingRestrictions?: number[];
880
- animationFrames?: AnimationFrame[];
881
- animationFrameFlags?: {
882
- propagateFrameOne?: boolean;
883
- unifyLayerPosition?: boolean;
884
- unifyLayerStyle?: boolean;
885
- unifyLayerVisibility?: boolean;
886
- };
887
- timeline?: Timeline;
888
- engineData?: string;
889
- }
890
- export interface ImageResources {
891
- layerState?: number;
892
- layersGroup?: number[];
893
- layerSelectionIds?: number[];
894
- layerGroupsEnabledId?: number[];
895
- versionInfo?: {
896
- hasRealMergedData: boolean;
897
- writerName: string;
898
- readerName: string;
899
- fileVersion: number;
900
- };
901
- alphaIdentifiers?: number[];
902
- alphaChannelNames?: string[];
903
- globalAngle?: number;
904
- globalAltitude?: number;
905
- pixelAspectRatio?: {
906
- aspect: number;
907
- };
908
- urlsList?: any[];
909
- gridAndGuidesInformation?: {
910
- grid?: {
911
- horizontal: number;
912
- vertical: number;
913
- };
914
- guides?: {
915
- location: number;
916
- direction: 'horizontal' | 'vertical';
917
- }[];
918
- };
919
- resolutionInfo?: {
920
- horizontalResolution: number;
921
- horizontalResolutionUnit: 'PPI' | 'PPCM';
922
- widthUnit: 'Inches' | 'Centimeters' | 'Points' | 'Picas' | 'Columns';
923
- verticalResolution: number;
924
- verticalResolutionUnit: 'PPI' | 'PPCM';
925
- heightUnit: 'Inches' | 'Centimeters' | 'Points' | 'Picas' | 'Columns';
926
- };
927
- thumbnail?: HTMLCanvasElement;
928
- thumbnailRaw?: {
929
- width: number;
930
- height: number;
931
- data: Uint8Array;
932
- };
933
- captionDigest?: string;
934
- xmpMetadata?: string;
935
- printScale?: {
936
- style?: 'centered' | 'size to fit' | 'user defined';
937
- x?: number;
938
- y?: number;
939
- scale?: number;
940
- };
941
- printInformation?: {
942
- printerManagesColors?: boolean;
943
- printerName?: string;
944
- printerProfile?: string;
945
- printSixteenBit?: boolean;
946
- renderingIntent?: RenderingIntent;
947
- hardProof?: boolean;
948
- blackPointCompensation?: boolean;
949
- proofSetup?: {
950
- builtin: string;
951
- } | {
952
- profile: string;
953
- renderingIntent?: RenderingIntent;
954
- blackPointCompensation?: boolean;
955
- paperWhite?: boolean;
956
- };
957
- };
958
- backgroundColor?: Color;
959
- idsSeedNumber?: number;
960
- printFlags?: {
961
- labels?: boolean;
962
- cropMarks?: boolean;
963
- colorBars?: boolean;
964
- registrationMarks?: boolean;
965
- negative?: boolean;
966
- flip?: boolean;
967
- interpolate?: boolean;
968
- caption?: boolean;
969
- printFlags?: boolean;
970
- };
971
- iccUntaggedProfile?: boolean;
972
- pathSelectionState?: string[];
973
- imageReadyVariables?: string;
974
- imageReadyDataSets?: string;
975
- animations?: Animations;
976
- onionSkins?: {
977
- enabled: boolean;
978
- framesBefore: number;
979
- framesAfter: number;
980
- frameSpacing: number;
981
- minOpacity: number;
982
- maxOpacity: number;
983
- blendMode: BlendMode;
984
- };
985
- timelineInformation?: {
986
- enabled: boolean;
987
- frameStep: Fraction;
988
- frameRate: number;
989
- time: Fraction;
990
- duration: Fraction;
991
- workInTime: Fraction;
992
- workOutTime: Fraction;
993
- repeats: number;
994
- hasMotion: boolean;
995
- globalTracks: TimelineTrack[];
996
- audioClipGroups?: {
997
- id: string;
998
- muted: boolean;
999
- audioClips: {
1000
- id: string;
1001
- start: Fraction;
1002
- duration: Fraction;
1003
- inTime: Fraction;
1004
- outTime: Fraction;
1005
- muted: boolean;
1006
- audioLevel: number;
1007
- frameReader: {
1008
- type: number;
1009
- mediaDescriptor: string;
1010
- link: {
1011
- name: string;
1012
- fullPath: string;
1013
- relativePath: string;
1014
- };
1015
- };
1016
- }[];
1017
- }[];
1018
- };
1019
- sheetDisclosure?: {
1020
- sheetTimelineOptions?: {
1021
- sheetID: number;
1022
- sheetDisclosed: boolean;
1023
- lightsDisclosed: boolean;
1024
- meshesDisclosed: boolean;
1025
- materialsDisclosed: boolean;
1026
- }[];
1027
- };
1028
- }
1029
- export interface GlobalLayerMaskInfo {
1030
- overlayColorSpace: number;
1031
- colorSpace1: number;
1032
- colorSpace2: number;
1033
- colorSpace3: number;
1034
- colorSpace4: number;
1035
- opacity: number;
1036
- kind: number;
1037
- }
1038
- export interface Annotation {
1039
- type: 'text' | 'sound';
1040
- open: boolean;
1041
- iconLocation: {
1042
- left: number;
1043
- top: number;
1044
- right: number;
1045
- bottom: number;
1046
- };
1047
- popupLocation: {
1048
- left: number;
1049
- top: number;
1050
- right: number;
1051
- bottom: number;
1052
- };
1053
- color: Color;
1054
- author: string;
1055
- name: string;
1056
- date: string;
1057
- data: string | Uint8Array;
1058
- }
1059
- export interface Layer extends LayerAdditionalInfo {
1060
- top?: number;
1061
- left?: number;
1062
- bottom?: number;
1063
- right?: number;
1064
- blendMode?: BlendMode;
1065
- opacity?: number;
1066
- transparencyProtected?: boolean;
1067
- hidden?: boolean;
1068
- clipping?: boolean;
1069
- canvas?: HTMLCanvasElement;
1070
- imageData?: ImageData;
1071
- children?: Layer[];
1072
- /** Applies only for layer groups. */
1073
- opened?: boolean;
1074
- }
1075
- export interface Psd extends LayerAdditionalInfo {
1076
- width: number;
1077
- height: number;
1078
- channels?: number;
1079
- bitsPerChannel?: number;
1080
- colorMode?: ColorMode;
1081
- children?: Layer[];
1082
- canvas?: HTMLCanvasElement;
1083
- imageData?: ImageData;
1084
- imageResources?: ImageResources;
1085
- linkedFiles?: LinkedFile[];
1086
- artboards?: {
1087
- count: number;
1088
- autoExpandOffset?: {
1089
- horizontal: number;
1090
- vertical: number;
1091
- };
1092
- origin?: {
1093
- horizontal: number;
1094
- vertical: number;
1095
- };
1096
- autoExpandEnabled?: boolean;
1097
- autoNestEnabled?: boolean;
1098
- autoPositionEnabled?: boolean;
1099
- shrinkwrapOnSaveEnabled?: boolean;
1100
- docDefaultNewArtboardBackgroundColor?: Color;
1101
- docDefaultNewArtboardBackgroundType?: number;
1102
- };
1103
- globalLayerMaskInfo?: GlobalLayerMaskInfo;
1104
- annotations?: Annotation[];
1105
- }
1106
- export interface ReadOptions {
1107
- /** Does not load layer image data. */
1108
- skipLayerImageData?: boolean;
1109
- /** Does not load composite image data. */
1110
- skipCompositeImageData?: boolean;
1111
- /** Does not load thumbnail. */
1112
- skipThumbnail?: boolean;
1113
- /** Does not load linked files (used in smart-objects). */
1114
- skipLinkedFilesData?: boolean;
1115
- /** Throws exception if features are missing. */
1116
- throwForMissingFeatures?: boolean;
1117
- /** Logs if features are missing. */
1118
- logMissingFeatures?: boolean;
1119
- /** Keep image data as byte array instead of canvas.
1120
- * (image data will appear in `imageData` fields instead of `canvas` fields)
1121
- * This avoids issues with canvas premultiplied alpha corrupting image data. */
1122
- useImageData?: boolean;
1123
- /** Loads thumbnail raw data instead of decoding it's content into canvas.
1124
- * `thumnailRaw` field is used instead. */
1125
- useRawThumbnail?: boolean;
1126
- /** Usend only for development. */
1127
- logDevFeatures?: boolean;
1128
- }
1129
- export interface WriteOptions {
1130
- /** Automatically generates thumbnail from composite image. */
1131
- generateThumbnail?: boolean;
1132
- /** Trims transparent pixels from layer image data. */
1133
- trimImageData?: boolean;
1134
- /** Invalidates text layer data, forcing Photoshop to redraw them on load.
1135
- * Use this option if you're updating loaded text layer properties. */
1136
- invalidateTextLayers?: boolean;
1137
- /** Logs if features are missing. */
1138
- logMissingFeatures?: boolean;
1139
- /** Forces bottom layer to be treated as layer and not background even when it's missing any transparency
1140
- * (by default Photoshop treats bottom layer as background it it doesn't have any transparent pixels). */
1141
- noBackground?: boolean;
1142
- /** Saves document as PSB (Large Document Format) file. */
1143
- psb?: boolean;
1144
- /** Uses zip compression when writing PSD file, will result in smaller file size but may be incompatible
1145
- * with some software. It may also be significantly slower. */
1146
- compress?: boolean;
1147
- }
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 HSB = {
30
+ h: number;
31
+ s: number;
32
+ b: number;
33
+ };
34
+ export type CMYK = {
35
+ c: number;
36
+ m: number;
37
+ y: number;
38
+ k: number;
39
+ };
40
+ export type LAB = {
41
+ l: number;
42
+ a: number;
43
+ b: number;
44
+ };
45
+ export type Grayscale = {
46
+ k: number;
47
+ };
48
+ export type Color = RGBA | RGB | HSB | CMYK | LAB | Grayscale;
49
+ export interface EffectContour {
50
+ name: string;
51
+ curve: {
52
+ x: number;
53
+ y: number;
54
+ }[];
55
+ }
56
+ export interface EffectPattern {
57
+ name: string;
58
+ id: string;
59
+ }
60
+ export interface LayerEffectShadow {
61
+ present?: boolean;
62
+ showInDialog?: boolean;
63
+ enabled?: boolean;
64
+ size?: UnitsValue;
65
+ angle?: number;
66
+ distance?: UnitsValue;
67
+ color?: Color;
68
+ blendMode?: BlendMode;
69
+ opacity?: number;
70
+ useGlobalLight?: boolean;
71
+ antialiased?: boolean;
72
+ contour?: EffectContour;
73
+ choke?: UnitsValue;
74
+ layerConceals?: boolean;
75
+ }
76
+ export interface LayerEffectsOuterGlow {
77
+ present?: boolean;
78
+ showInDialog?: boolean;
79
+ enabled?: boolean;
80
+ size?: UnitsValue;
81
+ color?: Color;
82
+ blendMode?: BlendMode;
83
+ opacity?: number;
84
+ source?: GlowSource;
85
+ antialiased?: boolean;
86
+ noise?: number;
87
+ range?: number;
88
+ choke?: UnitsValue;
89
+ jitter?: number;
90
+ contour?: EffectContour;
91
+ }
92
+ export interface LayerEffectInnerGlow {
93
+ present?: boolean;
94
+ showInDialog?: boolean;
95
+ enabled?: boolean;
96
+ size?: UnitsValue;
97
+ color?: Color;
98
+ blendMode?: BlendMode;
99
+ opacity?: number;
100
+ source?: GlowSource;
101
+ technique?: GlowTechnique;
102
+ antialiased?: boolean;
103
+ noise?: number;
104
+ range?: number;
105
+ choke?: UnitsValue;
106
+ jitter?: number;
107
+ contour?: EffectContour;
108
+ }
109
+ export interface LayerEffectBevel {
110
+ present?: boolean;
111
+ showInDialog?: boolean;
112
+ enabled?: boolean;
113
+ size?: UnitsValue;
114
+ angle?: number;
115
+ strength?: number;
116
+ highlightBlendMode?: BlendMode;
117
+ shadowBlendMode?: BlendMode;
118
+ highlightColor?: Color;
119
+ shadowColor?: Color;
120
+ style?: BevelStyle;
121
+ highlightOpacity?: number;
122
+ shadowOpacity?: number;
123
+ soften?: UnitsValue;
124
+ useGlobalLight?: boolean;
125
+ altitude?: number;
126
+ technique?: BevelTechnique;
127
+ direction?: BevelDirection;
128
+ useTexture?: boolean;
129
+ useShape?: boolean;
130
+ antialiasGloss?: boolean;
131
+ contour?: EffectContour;
132
+ }
133
+ export interface LayerEffectSolidFill {
134
+ present?: boolean;
135
+ showInDialog?: boolean;
136
+ enabled?: boolean;
137
+ blendMode?: BlendMode;
138
+ color?: Color;
139
+ opacity?: number;
140
+ }
141
+ export interface LayerEffectStroke {
142
+ present?: boolean;
143
+ showInDialog?: boolean;
144
+ enabled?: boolean;
145
+ overprint?: boolean;
146
+ size?: UnitsValue;
147
+ position?: 'inside' | 'center' | 'outside';
148
+ fillType?: 'color' | 'gradient' | 'pattern';
149
+ blendMode?: BlendMode;
150
+ opacity?: number;
151
+ color?: Color;
152
+ gradient?: (EffectSolidGradient | EffectNoiseGradient) & ExtraGradientInfo;
153
+ pattern?: EffectPattern & {};
154
+ }
155
+ export interface LayerEffectSatin {
156
+ present?: boolean;
157
+ showInDialog?: boolean;
158
+ enabled?: boolean;
159
+ size?: UnitsValue;
160
+ blendMode?: BlendMode;
161
+ color?: Color;
162
+ antialiased?: boolean;
163
+ opacity?: number;
164
+ distance?: UnitsValue;
165
+ invert?: boolean;
166
+ angle?: number;
167
+ contour?: EffectContour;
168
+ }
169
+ export interface LayerEffectPatternOverlay {
170
+ present?: boolean;
171
+ showInDialog?: boolean;
172
+ enabled?: boolean;
173
+ blendMode?: BlendMode;
174
+ opacity?: number;
175
+ scale?: number;
176
+ pattern?: EffectPattern;
177
+ phase?: {
178
+ x: number;
179
+ y: number;
180
+ };
181
+ align?: boolean;
182
+ }
183
+ export interface EffectSolidGradient {
184
+ name: string;
185
+ type: 'solid';
186
+ smoothness?: number;
187
+ colorStops: ColorStop[];
188
+ opacityStops: OpacityStop[];
189
+ }
190
+ export interface EffectNoiseGradient {
191
+ name: string;
192
+ type: 'noise';
193
+ roughness?: number;
194
+ colorModel?: 'rgb' | 'hsb' | 'lab';
195
+ randomSeed?: number;
196
+ restrictColors?: boolean;
197
+ addTransparency?: boolean;
198
+ min: number[];
199
+ max: number[];
200
+ }
201
+ export interface LayerEffectGradientOverlay {
202
+ present?: boolean;
203
+ showInDialog?: boolean;
204
+ enabled?: boolean;
205
+ blendMode?: string;
206
+ opacity?: number;
207
+ align?: boolean;
208
+ scale?: number;
209
+ dither?: boolean;
210
+ reverse?: boolean;
211
+ type?: GradientStyle;
212
+ offset?: {
213
+ x: number;
214
+ y: number;
215
+ };
216
+ gradient?: EffectSolidGradient | EffectNoiseGradient;
217
+ interpolationMethod?: InterpolationMethod;
218
+ }
219
+ export interface LayerEffectsInfo {
220
+ disabled?: boolean;
221
+ scale?: number;
222
+ dropShadow?: LayerEffectShadow[];
223
+ innerShadow?: LayerEffectShadow[];
224
+ outerGlow?: LayerEffectsOuterGlow;
225
+ innerGlow?: LayerEffectInnerGlow;
226
+ bevel?: LayerEffectBevel;
227
+ solidFill?: LayerEffectSolidFill[];
228
+ satin?: LayerEffectSatin;
229
+ stroke?: LayerEffectStroke[];
230
+ gradientOverlay?: LayerEffectGradientOverlay[];
231
+ patternOverlay?: LayerEffectPatternOverlay;
232
+ }
233
+ export interface LayerMaskData {
234
+ top?: number;
235
+ left?: number;
236
+ bottom?: number;
237
+ right?: number;
238
+ defaultColor?: number;
239
+ disabled?: boolean;
240
+ positionRelativeToLayer?: boolean;
241
+ fromVectorData?: boolean;
242
+ userMaskDensity?: number;
243
+ userMaskFeather?: number;
244
+ vectorMaskDensity?: number;
245
+ vectorMaskFeather?: number;
246
+ canvas?: HTMLCanvasElement;
247
+ imageData?: ImageData;
248
+ }
249
+ export type TextGridding = 'none' | 'round';
250
+ export type Orientation = 'horizontal' | 'vertical';
251
+ export type AntiAlias = 'none' | 'sharp' | 'crisp' | 'strong' | 'smooth' | 'platform' | 'platformLCD';
252
+ export type WarpStyle = 'none' | 'arc' | 'arcLower' | 'arcUpper' | 'arch' | 'bulge' | 'shellLower' | 'shellUpper' | 'flag' | 'wave' | 'fish' | 'rise' | 'fisheye' | 'inflate' | 'squeeze' | 'twist' | 'custom' | 'cylinder';
253
+ export type BevelStyle = 'outer bevel' | 'inner bevel' | 'emboss' | 'pillow emboss' | 'stroke emboss';
254
+ export type BevelTechnique = 'smooth' | 'chisel hard' | 'chisel soft';
255
+ export type BevelDirection = 'up' | 'down';
256
+ export type GlowTechnique = 'softer' | 'precise';
257
+ export type GlowSource = 'edge' | 'center';
258
+ export type GradientStyle = 'linear' | 'radial' | 'angle' | 'reflected' | 'diamond';
259
+ export type Justification = 'left' | 'right' | 'center';
260
+ export type LineCapType = 'butt' | 'round' | 'square';
261
+ export type LineJoinType = 'miter' | 'round' | 'bevel';
262
+ export type LineAlignment = 'inside' | 'center' | 'outside';
263
+ export type InterpolationMethod = 'classic' | 'perceptual' | 'linear';
264
+ export interface Warp {
265
+ style?: WarpStyle;
266
+ value?: number;
267
+ values?: number[];
268
+ perspective?: number;
269
+ perspectiveOther?: number;
270
+ rotate?: Orientation;
271
+ bounds?: {
272
+ top: UnitsValue;
273
+ left: UnitsValue;
274
+ bottom: UnitsValue;
275
+ right: UnitsValue;
276
+ };
277
+ uOrder?: number;
278
+ vOrder?: number;
279
+ deformNumRows?: number;
280
+ deformNumCols?: number;
281
+ customEnvelopeWarp?: {
282
+ quiltSliceX?: number[];
283
+ quiltSliceY?: number[];
284
+ meshPoints: {
285
+ x: number;
286
+ y: number;
287
+ }[];
288
+ };
289
+ }
290
+ export interface Animations {
291
+ frames: {
292
+ id: number;
293
+ delay: number;
294
+ dispose?: 'auto' | 'none' | 'dispose';
295
+ }[];
296
+ animations: {
297
+ id: number;
298
+ frames: number[];
299
+ repeats?: number;
300
+ activeFrame?: number;
301
+ }[];
302
+ }
303
+ export interface Font {
304
+ name: string;
305
+ script?: number;
306
+ type?: number;
307
+ synthetic?: number;
308
+ }
309
+ export interface ParagraphStyle {
310
+ justification?: Justification;
311
+ firstLineIndent?: number;
312
+ startIndent?: number;
313
+ endIndent?: number;
314
+ spaceBefore?: number;
315
+ spaceAfter?: number;
316
+ autoHyphenate?: boolean;
317
+ hyphenatedWordSize?: number;
318
+ preHyphen?: number;
319
+ postHyphen?: number;
320
+ consecutiveHyphens?: number;
321
+ zone?: number;
322
+ wordSpacing?: number[];
323
+ letterSpacing?: number[];
324
+ glyphSpacing?: number[];
325
+ autoLeading?: number;
326
+ leadingType?: number;
327
+ hanging?: boolean;
328
+ burasagari?: boolean;
329
+ kinsokuOrder?: number;
330
+ everyLineComposer?: boolean;
331
+ }
332
+ export interface ParagraphStyleRun {
333
+ length: number;
334
+ style: ParagraphStyle;
335
+ }
336
+ export interface TextStyle {
337
+ font?: Font;
338
+ fontSize?: number;
339
+ fauxBold?: boolean;
340
+ fauxItalic?: boolean;
341
+ autoLeading?: boolean;
342
+ leading?: number;
343
+ horizontalScale?: number;
344
+ verticalScale?: number;
345
+ tracking?: number;
346
+ autoKerning?: boolean;
347
+ kerning?: number;
348
+ baselineShift?: number;
349
+ fontCaps?: number;
350
+ fontBaseline?: number;
351
+ underline?: boolean;
352
+ strikethrough?: boolean;
353
+ ligatures?: boolean;
354
+ dLigatures?: boolean;
355
+ baselineDirection?: number;
356
+ tsume?: number;
357
+ styleRunAlignment?: number;
358
+ language?: number;
359
+ noBreak?: boolean;
360
+ fillColor?: Color;
361
+ strokeColor?: Color;
362
+ fillFlag?: boolean;
363
+ strokeFlag?: boolean;
364
+ fillFirst?: boolean;
365
+ yUnderline?: number;
366
+ outlineWidth?: number;
367
+ characterDirection?: number;
368
+ hindiNumbers?: boolean;
369
+ kashida?: number;
370
+ diacriticPos?: number;
371
+ }
372
+ export interface TextStyleRun {
373
+ length: number;
374
+ style: TextStyle;
375
+ }
376
+ export interface TextGridInfo {
377
+ isOn?: boolean;
378
+ show?: boolean;
379
+ size?: number;
380
+ leading?: number;
381
+ color?: Color;
382
+ leadingFillColor?: Color;
383
+ alignLineHeightToGridFlags?: boolean;
384
+ }
385
+ export interface LayerTextData {
386
+ text: string;
387
+ transform?: number[];
388
+ antiAlias?: AntiAlias;
389
+ gridding?: TextGridding;
390
+ orientation?: Orientation;
391
+ index?: number;
392
+ warp?: Warp;
393
+ top?: number;
394
+ left?: number;
395
+ bottom?: number;
396
+ right?: number;
397
+ gridInfo?: TextGridInfo;
398
+ useFractionalGlyphWidths?: boolean;
399
+ style?: TextStyle;
400
+ styleRuns?: TextStyleRun[];
401
+ paragraphStyle?: ParagraphStyle;
402
+ paragraphStyleRuns?: ParagraphStyleRun[];
403
+ superscriptSize?: number;
404
+ superscriptPosition?: number;
405
+ subscriptSize?: number;
406
+ subscriptPosition?: number;
407
+ smallCapSize?: number;
408
+ shapeType?: 'point' | 'box';
409
+ pointBase?: number[];
410
+ boxBounds?: number[];
411
+ }
412
+ export interface PatternInfo {
413
+ name: string;
414
+ id: string;
415
+ x: number;
416
+ y: number;
417
+ bounds: {
418
+ x: number;
419
+ y: number;
420
+ w: number;
421
+ h: number;
422
+ };
423
+ data: Uint8Array;
424
+ }
425
+ export interface BezierKnot {
426
+ linked: boolean;
427
+ points: number[];
428
+ }
429
+ export type BooleanOperation = 'exclude' | 'combine' | 'subtract' | 'intersect';
430
+ export interface BezierPath {
431
+ open: boolean;
432
+ operation: BooleanOperation;
433
+ knots: BezierKnot[];
434
+ }
435
+ export interface ExtraGradientInfo {
436
+ style?: GradientStyle;
437
+ scale?: number;
438
+ angle?: number;
439
+ dither?: boolean;
440
+ reverse?: boolean;
441
+ align?: boolean;
442
+ offset?: {
443
+ x: number;
444
+ y: number;
445
+ };
446
+ }
447
+ export interface ExtraPatternInfo {
448
+ linked?: boolean;
449
+ phase?: {
450
+ x: number;
451
+ y: number;
452
+ };
453
+ }
454
+ export type VectorContent = {
455
+ type: 'color';
456
+ color: Color;
457
+ } | (EffectSolidGradient & ExtraGradientInfo) | (EffectNoiseGradient & ExtraGradientInfo) | (EffectPattern & {
458
+ type: 'pattern';
459
+ } & ExtraPatternInfo);
460
+ export type RenderingIntent = 'perceptual' | 'saturation' | 'relative colorimetric' | 'absolute colorimetric';
461
+ export type Units = 'Pixels' | 'Points' | 'Picas' | 'Millimeters' | 'Centimeters' | 'Inches' | 'None' | 'Density';
462
+ export interface UnitsValue {
463
+ units: Units;
464
+ value: number;
465
+ }
466
+ export interface BrightnessAdjustment {
467
+ type: 'brightness/contrast';
468
+ brightness?: number;
469
+ contrast?: number;
470
+ meanValue?: number;
471
+ useLegacy?: boolean;
472
+ labColorOnly?: boolean;
473
+ auto?: boolean;
474
+ }
475
+ export interface LevelsAdjustmentChannel {
476
+ shadowInput: number;
477
+ highlightInput: number;
478
+ shadowOutput: number;
479
+ highlightOutput: number;
480
+ midtoneInput: number;
481
+ }
482
+ export interface PresetInfo {
483
+ presetKind?: number;
484
+ presetFileName?: string;
485
+ }
486
+ export interface LevelsAdjustment extends PresetInfo {
487
+ type: 'levels';
488
+ rgb?: LevelsAdjustmentChannel;
489
+ red?: LevelsAdjustmentChannel;
490
+ green?: LevelsAdjustmentChannel;
491
+ blue?: LevelsAdjustmentChannel;
492
+ }
493
+ export type CurvesAdjustmentChannel = {
494
+ input: number;
495
+ output: number;
496
+ }[];
497
+ export interface CurvesAdjustment extends PresetInfo {
498
+ type: 'curves';
499
+ rgb?: CurvesAdjustmentChannel;
500
+ red?: CurvesAdjustmentChannel;
501
+ green?: CurvesAdjustmentChannel;
502
+ blue?: CurvesAdjustmentChannel;
503
+ }
504
+ export interface ExposureAdjustment extends PresetInfo {
505
+ type: 'exposure';
506
+ exposure?: number;
507
+ offset?: number;
508
+ gamma?: number;
509
+ }
510
+ export interface VibranceAdjustment {
511
+ type: 'vibrance';
512
+ vibrance?: number;
513
+ saturation?: number;
514
+ }
515
+ export interface HueSaturationAdjustmentChannel {
516
+ a: number;
517
+ b: number;
518
+ c: number;
519
+ d: number;
520
+ hue: number;
521
+ saturation: number;
522
+ lightness: number;
523
+ }
524
+ export interface HueSaturationAdjustment extends PresetInfo {
525
+ type: 'hue/saturation';
526
+ master?: HueSaturationAdjustmentChannel;
527
+ reds?: HueSaturationAdjustmentChannel;
528
+ yellows?: HueSaturationAdjustmentChannel;
529
+ greens?: HueSaturationAdjustmentChannel;
530
+ cyans?: HueSaturationAdjustmentChannel;
531
+ blues?: HueSaturationAdjustmentChannel;
532
+ magentas?: HueSaturationAdjustmentChannel;
533
+ }
534
+ export interface ColorBalanceValues {
535
+ cyanRed: number;
536
+ magentaGreen: number;
537
+ yellowBlue: number;
538
+ }
539
+ export interface ColorBalanceAdjustment {
540
+ type: 'color balance';
541
+ shadows?: ColorBalanceValues;
542
+ midtones?: ColorBalanceValues;
543
+ highlights?: ColorBalanceValues;
544
+ preserveLuminosity?: boolean;
545
+ }
546
+ export interface BlackAndWhiteAdjustment extends PresetInfo {
547
+ type: 'black & white';
548
+ reds?: number;
549
+ yellows?: number;
550
+ greens?: number;
551
+ cyans?: number;
552
+ blues?: number;
553
+ magentas?: number;
554
+ useTint?: boolean;
555
+ tintColor?: Color;
556
+ }
557
+ export interface PhotoFilterAdjustment {
558
+ type: 'photo filter';
559
+ color?: Color;
560
+ density?: number;
561
+ preserveLuminosity?: boolean;
562
+ }
563
+ export interface ChannelMixerChannel {
564
+ red: number;
565
+ green: number;
566
+ blue: number;
567
+ constant: number;
568
+ }
569
+ export interface ChannelMixerAdjustment extends PresetInfo {
570
+ type: 'channel mixer';
571
+ monochrome?: boolean;
572
+ red?: ChannelMixerChannel;
573
+ green?: ChannelMixerChannel;
574
+ blue?: ChannelMixerChannel;
575
+ gray?: ChannelMixerChannel;
576
+ }
577
+ export interface ColorLookupAdjustment {
578
+ type: 'color lookup';
579
+ lookupType?: '3dlut' | 'abstractProfile' | 'deviceLinkProfile';
580
+ name?: string;
581
+ dither?: boolean;
582
+ profile?: Uint8Array;
583
+ lutFormat?: 'look' | 'cube' | '3dl';
584
+ dataOrder?: 'rgb' | 'bgr';
585
+ tableOrder?: 'rgb' | 'bgr';
586
+ lut3DFileData?: Uint8Array;
587
+ lut3DFileName?: string;
588
+ }
589
+ export interface InvertAdjustment {
590
+ type: 'invert';
591
+ }
592
+ export interface PosterizeAdjustment {
593
+ type: 'posterize';
594
+ levels?: number;
595
+ }
596
+ export interface ThresholdAdjustment {
597
+ type: 'threshold';
598
+ level?: number;
599
+ }
600
+ export interface ColorStop {
601
+ color: Color;
602
+ location: number;
603
+ midpoint: number;
604
+ }
605
+ export interface OpacityStop {
606
+ opacity: number;
607
+ location: number;
608
+ midpoint: number;
609
+ }
610
+ export interface GradientMapAdjustment {
611
+ type: 'gradient map';
612
+ name?: string;
613
+ gradientType: 'solid' | 'noise';
614
+ dither?: boolean;
615
+ reverse?: boolean;
616
+ smoothness?: number;
617
+ colorStops?: ColorStop[];
618
+ opacityStops?: OpacityStop[];
619
+ roughness?: number;
620
+ colorModel?: 'rgb' | 'hsb' | 'lab';
621
+ randomSeed?: number;
622
+ restrictColors?: boolean;
623
+ addTransparency?: boolean;
624
+ min?: number[];
625
+ max?: number[];
626
+ }
627
+ export interface SelectiveColorAdjustment {
628
+ type: 'selective color';
629
+ mode?: 'relative' | 'absolute';
630
+ reds?: CMYK;
631
+ yellows?: CMYK;
632
+ greens?: CMYK;
633
+ cyans?: CMYK;
634
+ blues?: CMYK;
635
+ magentas?: CMYK;
636
+ whites?: CMYK;
637
+ neutrals?: CMYK;
638
+ blacks?: CMYK;
639
+ }
640
+ export interface LinkedFile {
641
+ id: string;
642
+ name: string;
643
+ type?: string;
644
+ creator?: string;
645
+ data?: Uint8Array;
646
+ time?: Date;
647
+ descriptor?: {
648
+ compInfo: {
649
+ compID: number;
650
+ originalCompID: number;
651
+ };
652
+ };
653
+ childDocumentID?: string;
654
+ assetModTime?: number;
655
+ assetLockedState?: number;
656
+ }
657
+ export type PlacedLayerType = 'unknown' | 'vector' | 'raster' | 'image stack';
658
+ export interface PlacedLayer {
659
+ id: string;
660
+ placed?: string;
661
+ type: PlacedLayerType;
662
+ pageNumber?: number;
663
+ totalPages?: number;
664
+ frameStep?: {
665
+ numerator: number;
666
+ denominator: number;
667
+ };
668
+ duration?: {
669
+ numerator: number;
670
+ denominator: number;
671
+ };
672
+ frameCount?: number;
673
+ transform: number[];
674
+ nonAffineTransform?: number[];
675
+ width?: number;
676
+ height?: number;
677
+ resolution?: UnitsValue;
678
+ warp?: Warp;
679
+ crop?: number;
680
+ comp?: number;
681
+ compInfo?: {
682
+ compID: number;
683
+ originalCompID: number;
684
+ };
685
+ }
686
+ export type AdjustmentLayer = BrightnessAdjustment | LevelsAdjustment | CurvesAdjustment | ExposureAdjustment | VibranceAdjustment | HueSaturationAdjustment | ColorBalanceAdjustment | BlackAndWhiteAdjustment | PhotoFilterAdjustment | ChannelMixerAdjustment | ColorLookupAdjustment | InvertAdjustment | PosterizeAdjustment | ThresholdAdjustment | GradientMapAdjustment | SelectiveColorAdjustment;
687
+ export type LayerColor = 'none' | 'red' | 'orange' | 'yellow' | 'green' | 'blue' | 'violet' | 'gray';
688
+ export interface KeyDescriptorItem {
689
+ keyShapeInvalidated?: boolean;
690
+ keyOriginType?: number;
691
+ keyOriginResolution?: number;
692
+ keyOriginRRectRadii?: {
693
+ topRight: UnitsValue;
694
+ topLeft: UnitsValue;
695
+ bottomLeft: UnitsValue;
696
+ bottomRight: UnitsValue;
697
+ };
698
+ keyOriginShapeBoundingBox?: {
699
+ top: UnitsValue;
700
+ left: UnitsValue;
701
+ bottom: UnitsValue;
702
+ right: UnitsValue;
703
+ };
704
+ keyOriginBoxCorners?: {
705
+ x: number;
706
+ y: number;
707
+ }[];
708
+ transform?: number[];
709
+ }
710
+ export interface LayerVectorMask {
711
+ invert?: boolean;
712
+ notLink?: boolean;
713
+ disable?: boolean;
714
+ fillStartsWithAllPixels?: boolean;
715
+ clipboard?: {
716
+ top: number;
717
+ left: number;
718
+ bottom: number;
719
+ right: number;
720
+ resolution: number;
721
+ };
722
+ paths: BezierPath[];
723
+ }
724
+ export interface AnimationFrame {
725
+ frames: number[];
726
+ enable?: boolean;
727
+ offset?: {
728
+ x: number;
729
+ y: number;
730
+ };
731
+ referencePoint?: {
732
+ x: number;
733
+ y: number;
734
+ };
735
+ opacity?: number;
736
+ effects?: LayerEffectsInfo;
737
+ }
738
+ export interface Fraction {
739
+ numerator: number;
740
+ denominator: number;
741
+ }
742
+ export type TimelineKeyInterpolation = 'linear' | 'hold';
743
+ export type TimelineKey = {
744
+ interpolation: TimelineKeyInterpolation;
745
+ time: Fraction;
746
+ selected?: boolean;
747
+ } & ({
748
+ type: 'opacity';
749
+ value: number;
750
+ } | {
751
+ type: 'position';
752
+ x: number;
753
+ y: number;
754
+ } | {
755
+ type: 'transform';
756
+ scale: {
757
+ x: number;
758
+ y: number;
759
+ };
760
+ skew: {
761
+ x: number;
762
+ y: number;
763
+ };
764
+ rotation: number;
765
+ translation: {
766
+ x: number;
767
+ y: number;
768
+ };
769
+ } | {
770
+ type: 'style';
771
+ style?: LayerEffectsInfo;
772
+ } | {
773
+ type: 'globalLighting';
774
+ globalAngle: number;
775
+ globalAltitude: number;
776
+ });
777
+ export type TimelineTrackType = 'opacity' | 'style' | 'sheetTransform' | 'sheetPosition' | 'globalLighting';
778
+ export interface TimelineTrack {
779
+ type: TimelineTrackType;
780
+ enabled?: boolean;
781
+ effectParams?: {
782
+ keys: TimelineKey[];
783
+ fillCanvas: boolean;
784
+ zoomOrigin: number;
785
+ };
786
+ keys: TimelineKey[];
787
+ }
788
+ export interface Timeline {
789
+ start: Fraction;
790
+ duration: Fraction;
791
+ inTime: Fraction;
792
+ outTime: Fraction;
793
+ autoScope: boolean;
794
+ audioLevel: number;
795
+ tracks?: TimelineTrack[];
796
+ }
797
+ export interface LayerAdditionalInfo {
798
+ name?: string;
799
+ nameSource?: string;
800
+ id?: number;
801
+ version?: number;
802
+ mask?: LayerMaskData;
803
+ blendClippendElements?: boolean;
804
+ blendInteriorElements?: boolean;
805
+ knockout?: boolean;
806
+ layerMaskAsGlobalMask?: boolean;
807
+ protected?: {
808
+ transparency?: boolean;
809
+ composite?: boolean;
810
+ position?: boolean;
811
+ artboards?: boolean;
812
+ };
813
+ layerColor?: LayerColor;
814
+ referencePoint?: {
815
+ x: number;
816
+ y: number;
817
+ };
818
+ sectionDivider?: {
819
+ type: SectionDividerType;
820
+ key?: string;
821
+ subType?: number;
822
+ };
823
+ filterMask?: {
824
+ colorSpace: Color;
825
+ opacity: number;
826
+ };
827
+ effects?: LayerEffectsInfo;
828
+ text?: LayerTextData;
829
+ patterns?: PatternInfo[];
830
+ vectorFill?: VectorContent;
831
+ vectorStroke?: {
832
+ strokeEnabled?: boolean;
833
+ fillEnabled?: boolean;
834
+ lineWidth?: UnitsValue;
835
+ lineDashOffset?: UnitsValue;
836
+ miterLimit?: number;
837
+ lineCapType?: LineCapType;
838
+ lineJoinType?: LineJoinType;
839
+ lineAlignment?: LineAlignment;
840
+ scaleLock?: boolean;
841
+ strokeAdjust?: boolean;
842
+ lineDashSet?: UnitsValue[];
843
+ blendMode?: BlendMode;
844
+ opacity?: number;
845
+ content?: VectorContent;
846
+ resolution?: number;
847
+ };
848
+ vectorMask?: LayerVectorMask;
849
+ usingAlignedRendering?: boolean;
850
+ timestamp?: number;
851
+ pathList?: {}[];
852
+ adjustment?: AdjustmentLayer;
853
+ placedLayer?: PlacedLayer;
854
+ vectorOrigination?: {
855
+ keyDescriptorList: KeyDescriptorItem[];
856
+ };
857
+ compositorUsed?: {
858
+ description: string;
859
+ reason: string;
860
+ engine: string;
861
+ enableCompCore: string;
862
+ enableCompCoreGPU: string;
863
+ compCoreSupport: string;
864
+ compCoreGPUSupport: string;
865
+ };
866
+ artboard?: {
867
+ rect: {
868
+ top: number;
869
+ left: number;
870
+ bottom: number;
871
+ right: number;
872
+ };
873
+ guideIndices?: any[];
874
+ presetName?: string;
875
+ color?: Color;
876
+ backgroundType?: number;
877
+ };
878
+ fillOpacity?: number;
879
+ transparencyShapesLayer?: boolean;
880
+ channelBlendingRestrictions?: number[];
881
+ animationFrames?: AnimationFrame[];
882
+ animationFrameFlags?: {
883
+ propagateFrameOne?: boolean;
884
+ unifyLayerPosition?: boolean;
885
+ unifyLayerStyle?: boolean;
886
+ unifyLayerVisibility?: boolean;
887
+ };
888
+ timeline?: Timeline;
889
+ engineData?: string;
890
+ }
891
+ export interface ImageResources {
892
+ layerState?: number;
893
+ layersGroup?: number[];
894
+ layerSelectionIds?: number[];
895
+ layerGroupsEnabledId?: number[];
896
+ versionInfo?: {
897
+ hasRealMergedData: boolean;
898
+ writerName: string;
899
+ readerName: string;
900
+ fileVersion: number;
901
+ };
902
+ alphaIdentifiers?: number[];
903
+ alphaChannelNames?: string[];
904
+ globalAngle?: number;
905
+ globalAltitude?: number;
906
+ pixelAspectRatio?: {
907
+ aspect: number;
908
+ };
909
+ urlsList?: {
910
+ id: number;
911
+ ref: 'slice';
912
+ url: string;
913
+ }[];
914
+ gridAndGuidesInformation?: {
915
+ grid?: {
916
+ horizontal: number;
917
+ vertical: number;
918
+ };
919
+ guides?: {
920
+ location: number;
921
+ direction: 'horizontal' | 'vertical';
922
+ }[];
923
+ };
924
+ resolutionInfo?: {
925
+ horizontalResolution: number;
926
+ horizontalResolutionUnit: 'PPI' | 'PPCM';
927
+ widthUnit: 'Inches' | 'Centimeters' | 'Points' | 'Picas' | 'Columns';
928
+ verticalResolution: number;
929
+ verticalResolutionUnit: 'PPI' | 'PPCM';
930
+ heightUnit: 'Inches' | 'Centimeters' | 'Points' | 'Picas' | 'Columns';
931
+ };
932
+ thumbnail?: HTMLCanvasElement;
933
+ thumbnailRaw?: {
934
+ width: number;
935
+ height: number;
936
+ data: Uint8Array;
937
+ };
938
+ captionDigest?: string;
939
+ xmpMetadata?: string;
940
+ printScale?: {
941
+ style?: 'centered' | 'size to fit' | 'user defined';
942
+ x?: number;
943
+ y?: number;
944
+ scale?: number;
945
+ };
946
+ printInformation?: {
947
+ printerManagesColors?: boolean;
948
+ printerName?: string;
949
+ printerProfile?: string;
950
+ printSixteenBit?: boolean;
951
+ renderingIntent?: RenderingIntent;
952
+ hardProof?: boolean;
953
+ blackPointCompensation?: boolean;
954
+ proofSetup?: {
955
+ builtin: string;
956
+ } | {
957
+ profile: string;
958
+ renderingIntent?: RenderingIntent;
959
+ blackPointCompensation?: boolean;
960
+ paperWhite?: boolean;
961
+ };
962
+ };
963
+ backgroundColor?: Color;
964
+ idsSeedNumber?: number;
965
+ printFlags?: {
966
+ labels?: boolean;
967
+ cropMarks?: boolean;
968
+ colorBars?: boolean;
969
+ registrationMarks?: boolean;
970
+ negative?: boolean;
971
+ flip?: boolean;
972
+ interpolate?: boolean;
973
+ caption?: boolean;
974
+ printFlags?: boolean;
975
+ };
976
+ iccUntaggedProfile?: boolean;
977
+ pathSelectionState?: string[];
978
+ imageReadyVariables?: string;
979
+ imageReadyDataSets?: string;
980
+ animations?: Animations;
981
+ onionSkins?: {
982
+ enabled: boolean;
983
+ framesBefore: number;
984
+ framesAfter: number;
985
+ frameSpacing: number;
986
+ minOpacity: number;
987
+ maxOpacity: number;
988
+ blendMode: BlendMode;
989
+ };
990
+ timelineInformation?: {
991
+ enabled: boolean;
992
+ frameStep: Fraction;
993
+ frameRate: number;
994
+ time: Fraction;
995
+ duration: Fraction;
996
+ workInTime: Fraction;
997
+ workOutTime: Fraction;
998
+ repeats: number;
999
+ hasMotion: boolean;
1000
+ globalTracks: TimelineTrack[];
1001
+ audioClipGroups?: {
1002
+ id: string;
1003
+ muted: boolean;
1004
+ audioClips: {
1005
+ id: string;
1006
+ start: Fraction;
1007
+ duration: Fraction;
1008
+ inTime: Fraction;
1009
+ outTime: Fraction;
1010
+ muted: boolean;
1011
+ audioLevel: number;
1012
+ frameReader: {
1013
+ type: number;
1014
+ mediaDescriptor: string;
1015
+ link: {
1016
+ name: string;
1017
+ fullPath: string;
1018
+ relativePath: string;
1019
+ };
1020
+ };
1021
+ }[];
1022
+ }[];
1023
+ };
1024
+ sheetDisclosure?: {
1025
+ sheetTimelineOptions?: {
1026
+ sheetID: number;
1027
+ sheetDisclosed: boolean;
1028
+ lightsDisclosed: boolean;
1029
+ meshesDisclosed: boolean;
1030
+ materialsDisclosed: boolean;
1031
+ }[];
1032
+ };
1033
+ countInformation?: {
1034
+ color: RGB;
1035
+ name: string;
1036
+ size: number;
1037
+ fontSize: number;
1038
+ visible: boolean;
1039
+ points: {
1040
+ x: number;
1041
+ y: number;
1042
+ }[];
1043
+ }[];
1044
+ slices?: {
1045
+ bounds: {
1046
+ left: number;
1047
+ top: number;
1048
+ right: number;
1049
+ bottom: number;
1050
+ };
1051
+ groupName: string;
1052
+ slices: {
1053
+ id: number;
1054
+ groupId: number;
1055
+ origin: 'userGenerated' | 'autoGenerated' | 'layer';
1056
+ associatedLayerId: number;
1057
+ name: string;
1058
+ type: 'image' | 'noImage';
1059
+ bounds: {
1060
+ left: number;
1061
+ top: number;
1062
+ right: number;
1063
+ bottom: number;
1064
+ };
1065
+ url: string;
1066
+ target: string;
1067
+ message: string;
1068
+ altTag: string;
1069
+ cellTextIsHTML: boolean;
1070
+ cellText: string;
1071
+ horizontalAlignment: 'default';
1072
+ verticalAlignment: 'default';
1073
+ backgroundColorType: 'none' | 'matte' | 'color';
1074
+ backgroundColor: RGBA;
1075
+ topOutset?: number;
1076
+ leftOutset?: number;
1077
+ bottomOutset?: number;
1078
+ rightOutset?: number;
1079
+ }[];
1080
+ }[];
1081
+ }
1082
+ export interface GlobalLayerMaskInfo {
1083
+ overlayColorSpace: number;
1084
+ colorSpace1: number;
1085
+ colorSpace2: number;
1086
+ colorSpace3: number;
1087
+ colorSpace4: number;
1088
+ opacity: number;
1089
+ kind: number;
1090
+ }
1091
+ export interface Annotation {
1092
+ type: 'text' | 'sound';
1093
+ open: boolean;
1094
+ iconLocation: {
1095
+ left: number;
1096
+ top: number;
1097
+ right: number;
1098
+ bottom: number;
1099
+ };
1100
+ popupLocation: {
1101
+ left: number;
1102
+ top: number;
1103
+ right: number;
1104
+ bottom: number;
1105
+ };
1106
+ color: Color;
1107
+ author: string;
1108
+ name: string;
1109
+ date: string;
1110
+ data: string | Uint8Array;
1111
+ }
1112
+ export interface Layer extends LayerAdditionalInfo {
1113
+ top?: number;
1114
+ left?: number;
1115
+ bottom?: number;
1116
+ right?: number;
1117
+ blendMode?: BlendMode;
1118
+ opacity?: number;
1119
+ transparencyProtected?: boolean;
1120
+ hidden?: boolean;
1121
+ clipping?: boolean;
1122
+ canvas?: HTMLCanvasElement;
1123
+ imageData?: ImageData;
1124
+ children?: Layer[];
1125
+ /** Applies only for layer groups. */
1126
+ opened?: boolean;
1127
+ }
1128
+ export interface Psd extends LayerAdditionalInfo {
1129
+ width: number;
1130
+ height: number;
1131
+ channels?: number;
1132
+ bitsPerChannel?: number;
1133
+ colorMode?: ColorMode;
1134
+ children?: Layer[];
1135
+ canvas?: HTMLCanvasElement;
1136
+ imageData?: ImageData;
1137
+ imageResources?: ImageResources;
1138
+ linkedFiles?: LinkedFile[];
1139
+ artboards?: {
1140
+ count: number;
1141
+ autoExpandOffset?: {
1142
+ horizontal: number;
1143
+ vertical: number;
1144
+ };
1145
+ origin?: {
1146
+ horizontal: number;
1147
+ vertical: number;
1148
+ };
1149
+ autoExpandEnabled?: boolean;
1150
+ autoNestEnabled?: boolean;
1151
+ autoPositionEnabled?: boolean;
1152
+ shrinkwrapOnSaveEnabled?: boolean;
1153
+ docDefaultNewArtboardBackgroundColor?: Color;
1154
+ docDefaultNewArtboardBackgroundType?: number;
1155
+ };
1156
+ globalLayerMaskInfo?: GlobalLayerMaskInfo;
1157
+ annotations?: Annotation[];
1158
+ }
1159
+ export interface ReadOptions {
1160
+ /** Does not load layer image data. */
1161
+ skipLayerImageData?: boolean;
1162
+ /** Does not load composite image data. */
1163
+ skipCompositeImageData?: boolean;
1164
+ /** Does not load thumbnail. */
1165
+ skipThumbnail?: boolean;
1166
+ /** Does not load linked files (used in smart-objects). */
1167
+ skipLinkedFilesData?: boolean;
1168
+ /** Throws exception if features are missing. */
1169
+ throwForMissingFeatures?: boolean;
1170
+ /** Logs if features are missing. */
1171
+ logMissingFeatures?: boolean;
1172
+ /** Keep image data as byte array instead of canvas.
1173
+ * (image data will appear in `imageData` fields instead of `canvas` fields)
1174
+ * This avoids issues with canvas premultiplied alpha corrupting image data. */
1175
+ useImageData?: boolean;
1176
+ /** Loads thumbnail raw data instead of decoding it's content into canvas.
1177
+ * `thumnailRaw` field is used instead. */
1178
+ useRawThumbnail?: boolean;
1179
+ /** Usend only for development. */
1180
+ logDevFeatures?: boolean;
1181
+ }
1182
+ export interface WriteOptions {
1183
+ /** Automatically generates thumbnail from composite image. */
1184
+ generateThumbnail?: boolean;
1185
+ /** Trims transparent pixels from layer image data. */
1186
+ trimImageData?: boolean;
1187
+ /** Invalidates text layer data, forcing Photoshop to redraw them on load.
1188
+ * Use this option if you're updating loaded text layer properties. */
1189
+ invalidateTextLayers?: boolean;
1190
+ /** Logs if features are missing. */
1191
+ logMissingFeatures?: boolean;
1192
+ /** Forces bottom layer to be treated as layer and not background even when it's missing any transparency
1193
+ * (by default Photoshop treats bottom layer as background it it doesn't have any transparent pixels). */
1194
+ noBackground?: boolean;
1195
+ /** Saves document as PSB (Large Document Format) file. */
1196
+ psb?: boolean;
1197
+ /** Uses zip compression when writing PSD file, will result in smaller file size but may be incompatible
1198
+ * with some software. It may also be significantly slower. */
1199
+ compress?: boolean;
1200
+ }