UNPKG

typescript-closure-tools

Version:

Command-line tools to convert closure-style JSDoc annotations to typescript, and to convert typescript sources to closure externs files

272 lines (216 loc) 7.6 kB
// Type definitions for svg.js // Project: http://www.svgjs.com/ // Definitions by: Sean Hess <https://seanhess.github.io/> // Definitions: https://github.com/borisyankov/DefinitelyTyped // Reference: http://documentup.com/wout/svg.js // TODO sets // TODO gradients declare var SVG:svgjs.Library; declare module svgjs { export interface LinkedHTMLElement extends HTMLElement { instance: Element; } export interface Library { (selector:string):Doc; (domElement:HTMLElement):Doc; create(name:string):any; Element:ElementStatic; supported:boolean; get(id:string):Element; extend(parent:Object, obj:Object):void; } export interface Doc extends Element { svg(data:string):any; pattern(w:number, h:number, add:(e:Element)=>void):Element; defs():Defs; clear():void; mask():Mask; // TODO gradients } // https://github.com/wout/svg.filter.js export interface Filter { gaussianBlur(values:string):Filter; colorMatrix(name:string, value:number):Filter; colorMatrix(name:string, matrix:number[]):Filter; componentTransfer(components:{rgb?: FilterComponentTransfer; g?: FilterComponentTransfer;}):Filter; offset(x:number, y:number):Filter; blend():Filter; in(source:FilterSource):Filter; sourceAlpha:FilterSource; source:FilterSource; } export interface FilterSource { } export interface FilterComponentTransfer { type: string; tableValues?: string; slope?: number; intercept: number; amplitude: number; exponent: number; offset: number; } export interface Element extends Text, Parent { node:LinkedHTMLElement; nested():Doc; animate(duration?:number, ease?:string, delay?:number):Animation; animate(info:{ease?:string; duration?:number; delay?:number}):Animation; attr(name:string):any; attr(obj:Object):Element; attr(name:string, value:any, namespace?:string):Element; viewbox():Viewbox; viewbox(x:number, y:number, w:number, h:number):Element; viewbox(obj:Viewbox):Element; move(x:number, y:number, anchor?:boolean):Element; x(x:number, anchor?:boolean):Element; y(y:number, anchor?:boolean):Element; x(): number; y(): number; center(x:number, y:number, anchor?:boolean):Element; cx(x:number, anchor?:boolean):Element; cy(y:number, anchor?:boolean):Element; size(w:number, h:number, anchor?:boolean):Element; show():Element; hide():Element; visible():boolean; remove():void; each(iterator:(i?:number, children?:Element[])=>void, deep?:boolean):void; filter(adder:(filter:Filter)=>void):Element; transform(t:Transform):Element; transform(): Transform; style(name:string, value:string):Element; style(obj:Object):Element; style(name:string):string; style():string; bbox():BBox; rbox():RBox; doc():Doc; data(name:string):any; data(name:string, value:any):Element; remember(name:string, value:any):Element; remember(obj:Object):Element; remember(name:string):any; forget(...keys:string[]):Element; fill(fill:{color?:string; opacity?:number}):Element; fill(color:string):Element; fill(pattern:Element):Element; stroke(data:{color?:string; opacity?:number; width?: number}):Element; stroke(color:string):Element; opacity(o:number):Element; rotate(d:number, cx?:number, cy?:number):Element; skew(x:number, y:number):Element; scale(x:number, y:number):Element; translate(x:number, y:number):Element; maskWith(element:Element):Element; masker:Element; unmask():Element; clipWith(element:Element):Element; clipper:Element; unclip():Element; front():Element; back():Element; forward():Element; backward():Element; siblings():Element[]; position():number; next():Element; previous():Element; before(element:Element):Element; after(element:Element):Element; click(cb:Function):void; on(event:string, cb:Function):void; off(event:string, cb:Function):void; } export interface Mask extends Element { add(element:Element):Mask; } export interface Text { content:string; font(font:{family?:string; size?:number; anchor?:string; leading?:string}):Element; tspan(text:string):Element; path(data:string):Element; plot(data:string):Element; track:Element; } export interface ElementStatic extends Parent { new(node:any):Element; } export interface Defs extends Element {} export interface Animation { stop():Animation; attr(name:string, value:any, namespace?:string):Animation; attr(obj:Object):Animation; attr(name:string):any; viewbox(x:number, y:number, w:number, h:number):Animation; move(x:number, y:number, anchor?:boolean):Animation; x(x:number, anchor?:boolean):Animation; y(y:number, anchor?:boolean):Animation; center(x:number, y:number, anchor?:boolean):Animation; cx(x:number, anchor?:boolean):Animation; cy(y:number, anchor?:boolean):Animation; size(w:number, h:number, anchor?:boolean):Animation; during(cb:(pos:number)=>void):Animation; to(value:number):Animation; after(cb:()=>void):Animation; // TODO style, etc, bbox... } export interface Parent { put(element:Element, i?:number):Element; add(element:Element, i?:number):Element; children():Element[]; rect(w:number, h:number):Element; ellipse(w:number, h:number):Element; circle(diameter:number):Element; line(x1:number, y1:number, x2:number, y2:number):Element; polyline(data:string):Element; polyline(points:number[][]):Element; polygon(data:string):Element; polygon(points:number[][]):Element; path(data:string):Element; image(url:string, w?:number, h?:number):Element; text(text:string):Element; text(adder:(element:Element)=>void):Element; use(element:Element):Element; group():Element; } export interface BBox { height:number; width:number; y:number; x:number; cx:number; cy:number; merge(bbox:BBox):BBox; } export interface RBox extends BBox {} export interface Attributes { (name:string, value:any):void; (obj:Object):void; (name:string):any; } export interface Viewbox { x: number; y: number; width: number; height: number; zoom?: number; } export interface Transform { x?: number; y?: number; rotation?: number; cx?: number; cy?: number; scaleX?: number; scaleY?: number; skewX?: number; skewY?: number; matrix?: string; // 1,0,0,1,0,0 a?: number; // direct digits of matrix b?: number; c?: number; d?: number; e?: number; f?: number; } }