Skip to content

Instantly share code, notes, and snippets.

@gonchar
Created November 11, 2015 19:45
Show Gist options
  • Save gonchar/e59c5946983d6065b00a to your computer and use it in GitHub Desktop.
Save gonchar/e59c5946983d6065b00a to your computer and use it in GitHub Desktop.
Photoshop Generator typescript
declare module "generator" {
export interface Plugin {
metadata:JSON;
plugin:Object;
config:Object;
}
export interface MenuState {
enabled:Boolean;
checked:Boolean;
}
export interface LayerSpec {
firstLayerIndex: number;
lastLayerIndex: number;
hidden?: Array<number>;
}
export interface Rectangle {
left:number;
top:number;
right:number;
bottom:number;
}
export interface PixmapSettings {
inputRect?:Rectangle;
outputRect?:Rectangle;
scaleX?:number;
scaleY?:number;
boundsOnly?:Boolean;
useSmartScaling?:Boolean;
includeAncestorMasks?:Boolean;
allowDither?:Boolean;
useColorSettingsDither?:Boolean;
interpolationType?:Boolean;
forceSmartPSDPixelScaling?:Boolean;
getPadding?:Function;
clipToDocumentBounds?:Boolean;
}
export interface Layer {
id:String;
index:number;
type:String;
name:String;
bounds:Rectangle;
visible:Boolean;
clipped:Boolean;
generatorSettings:Object;
//pixel
pixels?:Boolean;
//shape
fill?:Object;
strokeStyle?:Object;
path?:any;
}
export interface DocumentInfo {
placedID?:String;
version:String;
timeStamp:number;
count:number;
id:String;
file:String;
bounds:Rectangle;
selection:Array<number>;
resolution:number;
globalLight:any;
generatorSettings:Object;
layers:Array<Layer>;
placed:Array<DocumentInfo>;
}
export interface Generator {
version:String;
addMenuItem(name:String, displayName:String, enabled:Boolean, checked:Boolean):any;
toggleMenu(name:String, enabled:Boolean, checked:Boolean, displayName:String):any;
getMenuState(name:String):MenuState;
getOpenDocumentIDs():any;
getDocumentInfo(documentId:String, flags:Object):any;
subscribeToPhotoshopEvents(events:Array<String>):Object;
onPhotoshopEvent(event:String, listener:Function):any;
oncePhotoshopEvent(event:String, listener:Function):any;
removePhotoshopEventListener(event:String, listener:Function):any;
photoshopEventListeners(event:String):Array<Function>;
getPixmap(documentId:String, layerId:String, settings:PixmapSettings):any;
getPixmap(documentId:String, layerSpec:LayerSpec, settings:PixmapSettings):any;
getDocumentPixmap(documentId:String, settings:PixmapSettings):any;
getPixmapParams(settings:Object, staticInputBounds:Rectangle, visibleInputBounds:Rectangle, paddedInputBounds:Rectangle):PixmapSettings;
getLayerShape(documentId:String, layerId:String):any;
getDeepBounds(layerId:String):Rectangle;
savePixmap(pixmap:Object, path:String, settings:Object):any;
getSVG(documentId:String, layerId:String, settings:Object):String;
getPhotoshopLocale():String;
getPhotoshopExecutableLocation():String;
getPhotoshopPath():String;
alert(messeage:String, stringReplacements:Array<any>):void;
evaluateJSXString(s:String):any;
evaluateJSXFile(path:String, params:Object):any;
shutdown():void
isConnected():Boolean;
getPluginMetadata(directory:String):JSON;
checkPluginCompatibility(metadata:JSON):any;
loadPlugin(directory:String):void;
getPlugin():Plugin;
getPhotoshopExecutableLocation():any;
getPhotoshopLocale():any;
checkConnection():any;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment