From 1bbc43326294dc2017fecc878d9cc6774e406d8f Mon Sep 17 00:00:00 2001 From: Anton Lavrenov Date: Tue, 27 Feb 2018 08:55:54 +0800 Subject: [PATCH] types fixes --- konva.d.ts | 1927 +++++++++++++++++++++++++++------------------------- 1 file changed, 1001 insertions(+), 926 deletions(-) diff --git a/konva.d.ts b/konva.d.ts index 91e3cb0d..d906fa95 100644 --- a/konva.d.ts +++ b/konva.d.ts @@ -1,926 +1,1001 @@ -declare module Konva { - - var pixelRatio: number; - var dragDistance: number; - var isDragging: () => boolean; - var isDragReady: () => boolean; - var DD: any; - - export class Util { - static getRandomColor(): string; - static getRGB(color: string): string; - } - - export class Easings { - static BackEaseIn(): any; - static BackEaseInOut(): any; - static BackEaseOut(): any; - static BounceEaseIn(): any; - static BounceEaseInOut(): any; - static BounceEaseOut(): any; - static EaseIn(): any; - static EaseInOut(): any; - static EaseOut(): any; - static ElasticEaseIn(): any; - static ElasticEaseInOut(): any; - static ElasticEaseOut(): any; - static Linear(): any; - static StrongEaseIn(): any; - static StrongEaseInOut(): any; - static StrongEaseOut(): any; - } - - class Filter { - } - - export class Filters { - static Blur(imageData: any): Filter; - static Brighten(imageData: any): Filter; - static Emboss(imageData: any): Filter; - static Enhance(imageData: any): Filter; - static Grayscale(imageData: any): Filter; - static HSV(imageData: any): Filter; - static Invert(imageData: any): Filter; - static Mask(imageData: any): Filter; - static Noise(imageData: any): Filter; - static Pixelate(imageData: any): Filter; - static Posterize(imageData: any): Filter; - static RGB(imageData: any): Filter; - static RGA(imageData: any): Filter; - static Sepia(imageData: any): Filter; - static Solarize(imageData: any): Filter; - static Threshold(imageData: any): Filter; - static Contrast(imageData: any): Filter; - } - - export class Animation { - constructor(func: Function, layers?: Layer[]); - constructor(func: Function, layer?: Layer); - - addLayer(layer: Layer): boolean; - getLayers(): Layer[]; - isRunning(): boolean; - setLayers(layers: Layer[]): Animation; - setLayers(layer: Layer): Animation; - start(): Animation; - stop(): Animation; - } - - interface NodeConfig { - x?: number; - y?: number; - width?: number; - height?: number; - visible?: boolean; - listening?: boolean; - id?: string; - name?: string; - opacity?: Number; - scale?: Vector2d; - scaleX?: number; - scaleY?: number; - rotation?: number; - rotationDeg?: number; - offset?: Vector2d; - offsetX?: number; - offsetY?: number; - draggable?: boolean; - dragDistance?: number; - dragBoundFunc?: (pos: Vector2d) => Vector2d; - } - - interface SizeConfig { - x?: number; - y?: number; - width?: number; - height?: number; - } - - interface ToDataURLConfig extends SizeConfig { - callback: Function; - mimeType?: string; - quality?: number; - } - - interface CacheConfig extends SizeConfig { - drawBorder?: boolean; - } - - interface ClearConfig extends SizeConfig { - } - - class Node { - constructor(config: NodeConfig); - static create(data: any, container?: HTMLElement): T; - - addName(name: string): Node; - blue(): number; - blue(blue: number): Node; - brightness(): number; - brightness(brightness: number): Node; - contrast(): number; - contrast(contrast: number): Node; - blurRadius(): number; - blurRadius(radius: number): Node; - cache(config?: CacheConfig): Node; - clearCache(): Node; - clear(bounds?: ClearConfig): Node; - clone(attrs?: NodeConfig): Node; - destroy(): void; - - dragBoundFunc(): (pos: Vector2d) => Vector2d; - dragBoundFunc(dragBoundFunc: (pos: Vector2d) => Vector2d): Node; - draggable(): boolean; - draggable(draggable: boolean): Node; - draw(): Node; - embossBlend(): boolean; - embossBlend(embossBlend: boolean): Node; - embossDirection(): string; - embossDirection(embossDirection: string): Node; - embossStrength(): number; - embossStrength(level: number): Node; - embossWhiteLevel(): number; - embossWhiteLevel(embossWhiteLevel: number): Node; - enhance(): number; - enhance(enhance: number): Node; - filters(): Filter[]; - filters(filters: Filter): Node; - findAncestor(selector?: string, includeSelf?: boolean, stopNode?: Node): Node; - findAncestors(selector?: string, includeSelf?: boolean, stopNode?: Node): Node[]; - fire(eventType: string, evt?: any, bubble?: boolean): Node; - getAbsoluteOpacity(): number; - getAbsolutePosition(): Vector2d; - getAbsoluteTransform(): Transform; - getAbsoluteZIndex(): number; - getAncestors(): Collection; - getAttr(attr: string): any; - getAttrs(): NodeConfig; - // CHECK - getCanvas(): Canvas; - getClassName(): string; - getClientRect(): SizeConfig; - getContext(): Context; - getDepth(): number; - getHeight(): number; - getHitCanvas(): Canvas; - getLayer(): Layer; - getParent(): Container; - getPosition(): Vector2d; - // CHECK - getSize(): { - width: number; - height: number; - }; - getStage(): Stage; - getTransform(): Transform; - getType(): String; - getWidth(): number; - getZIndex(): number; - green(): number; - green(green: number): Node; - hasName(name: string): boolean; - height(): number; - height(height: number): Node; - hide(): void; - hue(): number; - hue(hue: number): Node; - id(): string; - id(id: string): Node; - isDragging(): boolean; - isListening(): boolean; - isVisible(): boolean; - kaleidoscopeAngle(): number; - kaleidoscopeAngle(kaleidoscopeAngle: number): Node; - kaleidoscopePower(): number; - kaleidoscopePower(kaleidoscopePower: number): Node; - levels(): number; - levels(levels: number): Node; - listening(): any; - listening(listening: boolean): Node; - listening(listening: string): Node; - move(move: Vector2d): Node; - moveDown(): boolean; - moveTo(newContainer: Container): Node; - moveToBottom(): boolean; - moveToTop(): boolean; - moveUp(): boolean; - name(): string; - name(name: string): Node; - noise(): number; - noise(noise: number): Node; - off(evtStr: string): Node; - offset(): Vector2d; - offset(offset: Vector2d): Node; - offsetX(): number; - offsetX(offsetX: number): Node; - offsetY(): number; - offsetY(offsetY: number): Node; - on(evtStr: string, handler: Function): Node; - opacity(): number; - opacity(opacity: number): Node; - pixelSize(): number; - pixelSize(pixelSize: number): Node; - position(): Vector2d; - position(position: Vector2d): Node; - preventDefault(): boolean; - preventDefault(preventDefault: boolean): Node; - red(): number; - red(red: number): Node; - remove(): Node; - removeName(name: string): Node; - rotate(theta: number): Node; - rotation(): number; - rotation(rotation: number): Node; - saturation(): number; - saturation(saturation: number): Node; - scale(): Vector2d; - scale(scale: Vector2d): Node; - scaleX(): number; - scaleX(scaleX: number): Node; - scaleY(): number; - scaleY(scaleY: number): Node; - setAbsolutePosition(pos: Vector2d): Node; - setAttr(attr: string, val: any): Node; - setAttrs(attrs: NodeConfig): void; - setId(id: string): Node; - setSize(size: { width: number; height: number }): Node; - setZIndex(zIndex: number): void; - shouldDrawHit(): boolean; - show(): Node; - skew(): Vector2d; - skew(skew: Vector2d): Node; - skewX(): number; - skewX(skewX: number): Node; - skewY(): number; - skewY(skewY: number): Node; - startDrag(): void; - stopDrag(): void; - threshold(): number; - threshold(threshold: number): Node; - to(params: any): void; - toDataURL(config: ToDataURLConfig): string; - toImage(config: ToDataURLConfig): HTMLImageElement; - toJSON(): string; - toObject(): any; - transformsEnabled(): string; - transformsEnabled(transformsEnabled: string): Node; - value(): number; - value(value: number): Node; - visible(): any; - visible(visible: boolean): Node; - visible(visible: string): Node; - width(): number; - width(width: number): Node; - x(): number; - x(x: number): Node; - y(): number; - y(y: number): Node; - } - - interface ContainerConfig extends NodeConfig { - clearBeforeDraw?: boolean; - clipFunc?: (ctx: CanvasRenderingContext2D) => void; - } - - class Container extends Node { - constructor(params?: ContainerConfig); - add(...children: Node[]): Container; - getChildren(filterfunc?: Function): Collection; - clip(): SizeConfig; - clip(clip: SizeConfig | undefined | null): Container; - clipHeight(): number; - clipHeight(clipHeight: number | undefined | null): Container; - clipWidth(): number; - clipWidth(clipWidth: number | undefined | null): Container; - clipX(): number; - clipX(clipX: number | undefined | null): Container; - clipY(): number; - clipY(clipY: number | undefined | null): Container; - clipFunc(): (ctx: CanvasRenderingContext2D) => void; - clipFunc(ctx: CanvasRenderingContext2D | undefined | null): void; - destroyChildren(): void; - find(selector?: string): Collection; - findOne(selector: string): T; - getAllIntersections(pos: Vector2d): Node[]; - hasChildren(): boolean; - removeChildren(): void; - } - - interface ShapeConfig extends NodeConfig { - fill?: string; - fillPatternImage?: HTMLImageElement; - fillPatternX?: number; - fillPatternY?: number; - fillPatternOffset?: Vector2d; - fillPatternOffsetX?: number; - fillPatternOffsetY?: number; - fillPatternScale?: Vector2d; - fillPatternScaleX?: number; - fillPatternScaleY?: number; - fillPatternRotation?: number; - fillPatternRepeat?: string; - fillLinearGradientStartPoint?: Vector2d; - fillLinearGradientStartPointX?: number; - fillLinearGradientStartPointY?: number; - fillLinearGradientEndPoint?: Vector2d; - fillLinearGradientEndPointX?: number; - fillLinearGradientEndPointY?: number; - fillLinearGradientColorStops?: Array; - fillLinearRadialStartPoint?: Vector2d; - fillLinearRadialStartPointX?: number; - fillLinearRadialStartPointY?: number; - fillLinearRadialEndPoint?: Vector2d; - fillLinearRadialEndPointX?: number; - fillLinearRadialEndPointY?: number; - fillRadialGradientStartRadius?: number; - fillRadialGradientEndRadius?: number; - fillRadialGradientColorStops?: Array; - fillEnabled?: boolean; - fillPriority?: string; - stroke?: string; - strokeWidth?: number; - strokeScaleEnabled?: boolean; - strokeHitEnabled?: boolean; - strokeEnabled?: boolean; - lineJoin?: string; - lineCap?: string; - sceneFunc?: (con: Context) => void; - hitFunc?: (con: Context) => void; - drawFunc?: (con: Context) => void; - shadowColor?: string; - shadowBlur?: number; - shadowOffset?: Vector2d; - shadowOffsetX?: number; - shadowOffsetY?: number; - shadowOpacity?: number; - shadowEnabled?: boolean; - dash?: number[]; - dashEnabled?: boolean; - preventDefault?: boolean; - } - - class Shape extends Node { - constructor(ShapeConfig: ShapeConfig); - dash(): number[]; - dash(dash: number[]): Shape; - dashEnabled(): boolean; - dashEnabled(dashEnabled: boolean): Shape; - drawHitFromCache(alphaThreshold: number): Shape; - fill(): string; - fill(fill: string): Shape; - fillEnabled(): boolean; - fillEnabled(fillEnabled: boolean): Shape; - fillLinearGradientColorStops(): Array; - fillLinearGradientColorStops(colors: Array): Shape; - fillLinearGradientStartPoint(): Vector2d; - fillLinearGradientStartPoint(point: Vector2d): Vector2d; - fillLinearGradientStartPointX(): number; - fillLinearGradientStartPointX(x: number): Shape; - fillLinearGradientStartPointY(): number; - fillLinearGradientStartPointY(y: number): Shape; - fillLinearGradientEndPoint(): Vector2d; - fillLinearGradientEndPoint(point: Vector2d): Shape; - fillLinearGradientEndPointX(): number; - fillLinearGradientEndPointX(x: number): Shape; - fillLinearGradientEndPointY(): number; - fillLinearGradientEndPointY(y: number): Shape; - fillLinearRadialStartPoint(): Vector2d; - fillLinearRadialStartPoint(point: Vector2d): Shape; - fillLinearRadialStartPointX(): number; - fillLinearRadialStartPointX(x: number): Shape; - fillLinearRadialStartPointY(): number; - fillLinearRadialStartPointY(y: number): Shape; - fillLinearRadialEndPoint(): Vector2d; - fillLinearRadialEndPoint(point: Vector2d): Vector2d; - fillLinearRadialEndPointX(): number; - fillLinearRadialEndPointX(x: number): Shape; - fillLinearRadialEndPointY(): number; - fillLinearRadialEndPointY(y: number): Shape; - fillPatternImage(): HTMLImageElement; - fillPatternImage(image: HTMLImageElement): Shape; - fillRadialGradientStartRadius(): number; - fillRadialGradientStartRadius(radius: number): Shape; - fillRadialGradientEndRadius(): number; - fillRadialGradientEndRadius(radius: number): Shape; - fillRadialGradientColorStops(): Array; - fillRadialGradientColorStops(color: Array): Shape; - fillPatternOffset(): Vector2d; - fillPatternOffset(offset: Vector2d): Shape; - fillPatternOffsetX(): number; - fillPatternOffsetX(x: number): Shape; - fillPatternOffsetY(): number; - fillPatternOffsetY(y: number): Shape; - fillPatternRepeat(): string; - fillPatternRepeat(repeat: string): Shape; - fillPatternRotation(): number; - fillPatternRotation(rotation: number): Shape; - fillPatternScale(): Vector2d; - fillPatternScale(scale: Vector2d): Shape; - fillPatternScaleX(): number; - fillPatternScaleX(x: number): Shape; - fillPatternScaleY(): number; - fillPatternScaleY(y: number): Shape; - fillPatternX(): number; - fillPatternX(x: number): number; - fillPatternY(): number; - fillPatternY(y: number): Shape; - fillPriority(): string; - fillPriority(priority: string): Shape; - hasFill(): boolean; - hasShadow(): boolean; - hasStroke(): boolean; - hitFunc(): Function; - hitFunc(func: Function): Shape; - intersects(point: Vector2d): boolean; - lineCap(): string; - lineCap(lineCap: string): Shape; - lineJoin(): string; - lineJoin(lineJoin: string): Shape; - sceneFunc(): Function; - sceneFunc(func: (con: Context) => {}): Shape; - shadowColor(): string; - shadowColor(shadowColor: string): Shape; - shadowEnabled(): boolean; - shadowEnabled(shadowEnabled: boolean): Shape; - shadowOffset(): Vector2d; - shadowOffset(shadowOffset: Vector2d): Shape; - shadowOffsetX(): number; - shadowOffsetX(shadowOffsetX: number): Shape; - shadowOffsetY(): number; - shadowOffsetY(shadowOffsetY: number): Shape; - shadowOpacity(): number; - shadowOpacity(shadowOpacity: number): Shape; - shadowBlur(): number; - shadowBlur(blur: number): Shape; - stroke(): string; - stroke(stroke: string): Shape; - strokeEnabled(): boolean; - strokeEnabled(strokeEnabled: boolean): Shape; - strokeScaleEnabled(): boolean; - strokeScaleEnabled(strokeScaleEnabled: boolean): Shape; - strokeHitEnabled(): boolean; - strokeHitEnabled(strokeHitEnabled: boolean): Shape; - strokeWidth(): number; - strokeWidth(strokeWidth: number): Shape; - } - - interface StageConfig extends ContainerConfig { - container: any; - } - - class Stage extends Container { - constructor(StageConfig: StageConfig); - add(...layers: Layer[]): Stage; - add(...layers: FastLayer[]): Stage; - batchDraw(): void; - container(): HTMLElement; - destroy(): void; - drawHit(): void; - getIntersection(pos: Vector2d, selector?: string): Shape; - getLayers(): Layer[]; - getPointerPosition(): Vector2d; - setContainer(con: HTMLElement): void; - setHeight(height: number): void; - setWidth(width: number): void; - } - - interface LayerConfig extends ContainerConfig { - clearBeforeDraw?: boolean; - hitGraphEnabled?: boolean; - } - - class FastLayer extends Container { - constructor (config?: LayerConfig); - drawScene(): void; - hitGraphEnabled(val: boolean): FastLayer; - batchDraw(): void; - } - - class Layer extends Container { - constructor(config?: LayerConfig); - getIntersection(pos: Vector2d, selector?: string): Shape; - enableHitGraph(): Layer; - disableHitGraph(): Layer; - clearBeforeDraw(): boolean; - clearBeforeDraw(val: boolean): Layer; - hitGraphEnabled(): boolean; - hitGraphEnabled(val: boolean): Layer; - batchDraw(): void; - drawScene(): void; - } - - class Group extends Container { - - } - - interface CanvasConfig { - width: number; - height: number; - pixelRatio: number; - } - - class Canvas { - constructor(CanvasConfig: CanvasConfig); - getContext(): CanvasRenderingContext2D; - getHeight(): number; - getWidth(): number; - getPixelRatio(): number; - setHeight(val: number): void; - setWidth(val: number): void; - setPixelRatio(val: number): void; - setSize(size: { width: number; height: number }): void; - toDataURL(mimeType: string, quality: number): string; - public _canvas: HTMLElement; - } - - class Context { - clear(bounds?: ClearConfig): Context; - clearTrace(): void; - fillShape(shape: Shape): void; - fillStrokeShape(shape: Shape): void; - getCanvas(): Canvas; - getTrace(relaxed: boolean): string; - reset(): void; - setAttr(attr: string, value: any): void; - strokeShape(shape: Shape): void; - - // context pass through methods - // originally from lib.es6.d.ts - arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, anticlockwise?: boolean): void; - beginPath(): void; - bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void; - clearRect(x: number, y: number, width: number, height: number): void; - clip(): void; - closePath(): void; - createImageData(imageDataOrSw: number | ImageData, sh?: number): ImageData; - createLinearGradient(x0: number, y0: number, x1: number, y1: number): CanvasGradient; - createPattern(image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement, repetition: string): CanvasPattern; - createRadialGradient(x0: number, y0: number, r0: number, x1: number, y1: number, r1: number): CanvasGradient; - drawImage(image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ImageBitmap, dstX: number, dstY: number): void; - drawImage(image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ImageBitmap, dstX: number, dstY: number, dstW: number, dstH: number): void; - drawImage(image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ImageBitmap, srcX: number, srcY: number, srcW: number, srcH: number, dstX: number, dstY: number, dstW: number, dstH: number): void; - isPointInPath(x: number, y: number): boolean; - fill(): void; - fillRect(x: number, y: number, width: number, height: number): void; - strokeRect(x: number, y: number, w: number, h: number): void; - fillText(text: string, x: number, y: number): void; - measureText(text: string): TextMetrics; - getImageData(sx: number, sy: number, sw: number, sh: number): ImageData; - lineTo(x: number, y: number): void; - moveTo(x: number, y: number): void; - rect(x: number, y: number, w: number, h: number): void; - putImageData(imagedata: ImageData, dx: number, dy: number): void; - quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void; - restore(): void; - rotate(angle: number): void; - save(): void; - scale(x: number, y: number): void; - setLineDash(segments: number[]): void; - getLineDash(): number[]; - setTransform(m11: number, m12: number, m21: number, m22: number, dx: number, dy: number): void; - stroke(path?: Path2D): void; - strokeText(text: string, x: number, y: number): void; - transform(m11: number, m12: number, m21: number, m22: number, dx: number, dy: number): void; - translate(x: number, y: number): void; - } - - class Tween { - constructor(params: any); - destroy(): void; - finish(): Tween; - pause(): Tween; - play(): Tween; - reset(): Tween; - reverse(): Tween; - seek(t: number): Tween; - } - - // Shapes - - interface RingConfig extends ShapeConfig { - innerRadius: number; - outerRadius: number; - clockwise?: boolean; - } - - class Ring extends Shape { - constructor(RingConfig: RingConfig); - innerRadius(): number; - innerRadius(innerRadius: number): Ring; - outerRadius(): number; - outerRadius(outerRadius: number): Ring; - } - - interface ArcConfig extends ShapeConfig { - angle: number; - innerRadius: number; - outerRadius: number; - clockwise?: boolean; - } - - class Arc extends Shape { - constructor(ArcConfig: ArcConfig); - angle(): number; - angle(angle: number): Ring; - clockwise(): boolean; - clockwise(clockwise: boolean): Arc; - innerRadius(): number; - innerRadius(innerRadius: number): Arc; - outerRadius(): number; - outerRadius(outerRadius: number): Arc; - } - - interface CircleConfig extends ShapeConfig { - radius: number; - } - - class Circle extends Shape { - constructor(CircleConfig: CircleConfig); - radius(): number; - radius(radius: number): Circle; - } - - interface EllipseConfig extends ShapeConfig { - radius: any; - } - - class Ellipse extends Shape { - constructor(EllipseConfig: EllipseConfig); - radius(): any; - radius(radius: any): Ellipse; - radiusX(): number; - radiusX(radiusX: number): Ellipse; - radiusY(): number; - radiusY(radiusY: number): Ellipse; - } - - interface ImageConfig extends ShapeConfig { - image: HTMLImageElement; - crop?: SizeConfig; - } - - class Image extends Shape { - constructor(ImageConfig: ImageConfig); - image(): HTMLImageElement; - image(image: HTMLImageElement): Image; - crop(): SizeConfig; - crop(crop: SizeConfig): Image; - cropX(): number; - cropX(cropX: number): Image; - cropY(): number; - cropY(cropY: number): Image; - cropWidth(): number; - cropWidth(cropWidth: number): Image; - cropHeight(): number; - cropHeight(cropHeight: number): Image; - } - - interface LineConfig extends ShapeConfig { - points: number[]; - tension?: number; - closed?: boolean; - } - - class Line extends Shape { - constructor(LineConfig: LineConfig); - closed(): boolean; - closed(closed: boolean): Line; - tension(): number; - tension(tension: number): Line; - points(): number[]; - points(points: number[]): Line; - } - - interface ArrowConfig extends ShapeConfig { - points: number[]; - tension?: number; - closed?: boolean; - pointerLength?: number; - pointerWidth?: number; - } - - class Arrow extends Shape { - constructor(ArrowConfig: ArrowConfig); - closed(): boolean; - closed(closed: boolean): Arrow; - tension(): number; - tension(tension: number): Arrow; - points(): number[]; - points(points: number[]): Arrow; - pointerLength(): Number; - pointerLength(Length: Number): Number; - pointerWidth(): Number; - pointerWidth(Width: Number): Number; - pointerAtBeginning(): boolean; - pointerAtBeginning(Should: boolean): void; - } - - interface RectConfig extends ShapeConfig { - cornerRadius?: number; - } - - class Rect extends Shape { - constructor(RectConfig: RectConfig); - cornerRadius(): number; - cornerRadius(cornerRadius: number): Rect; - } - - interface SpriteConfig extends ShapeConfig { - animation: string; - animations: any; - frameIndex?: number; - image: HTMLImageElement; - } - - class Sprite extends Shape { - constructor(SpriteConfig: SpriteConfig); - start(): void; - stop(): void; - animation(): string; - animation(val: string): Sprite; - animations(): any; - animations(val: any): Sprite; - frameIndex(): number; - frameIndex(val: number): Sprite; - image(): HTMLImageElement; - image(image: HTMLImageElement): Sprite; - frameRate(): number; - frameRate(frameRate: number): Sprite; - } - - interface TextConfig extends ShapeConfig { - text: string; - fontFamily?: string; - fontSize?: number; - fontStyle?: string; - align?: string; - padding?: number; - lineHeight?: number; - wrap?: string; - } - - class Text extends Shape { - constructor(TextConfig: TextConfig); - getTextWidth(): number; - getTextHeight(): number; - text(): string; - text(text: string): Text; - fontFamily(): string; - fontFamily(fontFamily: string): Text; - fontSize(): number; - fontSize(fontSize: number): Text; - fontStyle(): string; - fontStyle(fontStyle: string): Text; - fontVariant(): string; - fontVariant(fontVariant: string): Text; - align(): string; - align(align: string): Text; - padding(): number; - padding(padding: number): Text; - lineHeight(): number; - lineHeight(lineHeight: number): Text; - wrap(): string; - wrap(wrap: string): Text; - textDecoration(): string; - textDecoration(textDecoration: string): Text; - } - - interface WedgeConfig extends ShapeConfig { - angle: number; - radius: number; - clockwise?: boolean; - } - - class Wedge extends Shape { - constructor(WedgeConfig: WedgeConfig); - angle(): number; - angle(angle: number): Wedge; - radius(): number; - radius(radius: number): Wedge; - clockwise(): boolean; - clockwise(clockwise: boolean): Wedge; - } - - // Plugins - interface TagConfig extends ShapeConfig { - pointerDirection?: string; - pointerWidth?: number; - pointerHeight?: number; - cornerRadius?: number; - } - - class Tag extends Shape { - constructor(config: TagConfig); - pointerDirection(): string; - pointerDirection(pointerDirection: string): Tag; - pointerWidth(): number; - pointerWidth(pointerWidth: number): Tag; - pointerHeight(): number; - pointerHeight(pointerHeight: number): Tag; - cornerRadius(): number; - cornerRadius(cornerRadius: number): Tag; - } - - - interface LabelInterface extends ContainerConfig { - } - - class Label extends Group { - constructor(LabelInterface: LabelInterface); - getText(): Text; - getTag(): Rect; - } - - interface PathConfig extends ShapeConfig { - data: string; - } - - class Path extends Shape { - constructor(PathConfig: PathConfig); - data(): string; - data(data: string): Path; - } - - interface RegularPolygonConfig extends ShapeConfig { - sides: number; - radius: number; - } - - class RegularPolygon extends Shape { - constructor(RegularPolygonConfig: RegularPolygonConfig); - sides(): number; - sides(sides: number): RegularPolygon; - radius(): number; - radius(radius: number): RegularPolygon; - } - - interface StarConfig extends ShapeConfig { - numPoints: number; - innerRadius: number; - outerRadius: number; - } - - class Star extends Shape { - constructor(StarConfig: StarConfig); - numPoints(): number; - numPoints(numPoints: number): Star; - innerRadius(): number; - innerRadius(innerRadius: number): Star; - outerRadius(): number; - outerRadius(outerRadius: number): Star; - } - - interface TextPathConfig extends ShapeConfig { - text: string; - data: string; - fontFamily?: string; - fontSize?: number; - fontStyle?: string; - } - - class TextPath extends Shape { - constructor(TextPathConfig: TextPathConfig); - getTextWidth(): number; - getTextHeight(): number; - setText(text: string): void; - text(): string; - text(text: string): Path; - fontFamily(): string; - fontFamily(fontFamily: string): Path; - fontSize(): number; - fontSize(fontSize: number): Path; - fontStyle(): string; - fontStyle(fontStyle: string): Path; - } - - - class Collection { - [i: number]: any; - static toCollection(arr: any[]): Collection; - each(f: (el: Node) => void): void; - toArray(): any[]; - length: number; - } - - class Transform { - copy(): Transform; - getMatrix(): number[]; - getTranslation(): Vector2d; - invert(): Transform; - multiply(matrix: number[]): Transform; - point(point: Vector2d): Vector2d; - rotate(deg: number): Transform; - scale(x: number, y: Number): Transform; - setAbsolutePosition(): Transform; - skew(x: number, y: Number): Transform; - translate(x: number, y: Number): Transform; - } - - - interface Vector2d { - x: number; - y: number; - } - } - - export = Konva; +declare namespace Konva { + var pixelRatio: number; + var dragDistance: number; + var isDragging: () => boolean; + var isDragReady: () => boolean; + var DD: any; + + export class Util { + static getRandomColor(): string; + static getRGB(color: string): string; + } + + export class Easings { + static BackEaseIn(): any; + static BackEaseInOut(): any; + static BackEaseOut(): any; + static BounceEaseIn(): any; + static BounceEaseInOut(): any; + static BounceEaseOut(): any; + static EaseIn(): any; + static EaseInOut(): any; + static EaseOut(): any; + static ElasticEaseIn(): any; + static ElasticEaseInOut(): any; + static ElasticEaseOut(): any; + static Linear(): any; + static StrongEaseIn(): any; + static StrongEaseInOut(): any; + static StrongEaseOut(): any; + } + + class Filter {} + + export class Filters { + static Blur(imageData: any): Filter; + static Brighten(imageData: any): Filter; + static Emboss(imageData: any): Filter; + static Enhance(imageData: any): Filter; + static Grayscale(imageData: any): Filter; + static HSV(imageData: any): Filter; + static Invert(imageData: any): Filter; + static Mask(imageData: any): Filter; + static Noise(imageData: any): Filter; + static Pixelate(imageData: any): Filter; + static Posterize(imageData: any): Filter; + static RGB(imageData: any): Filter; + static RGA(imageData: any): Filter; + static Sepia(imageData: any): Filter; + static Solarize(imageData: any): Filter; + static Threshold(imageData: any): Filter; + static Contrast(imageData: any): Filter; + } + + export class Animation { + constructor(func: Function, layers?: Layer[]); + constructor(func: Function, layer?: Layer); + + addLayer(layer: Layer): boolean; + getLayers(): Layer[]; + isRunning(): boolean; + setLayers(layers: Layer[]): Animation; + setLayers(layer: Layer): Animation; + start(): Animation; + stop(): Animation; + } + + interface NodeConfig { + x?: number; + y?: number; + width?: number; + height?: number; + visible?: boolean; + listening?: boolean; + id?: string; + name?: string; + opacity?: Number; + scale?: Vector2d; + scaleX?: number; + scaleY?: number; + rotation?: number; + rotationDeg?: number; + offset?: Vector2d; + offsetX?: number; + offsetY?: number; + draggable?: boolean; + dragDistance?: number; + dragBoundFunc?: (pos: Vector2d) => Vector2d; + } + + interface SizeConfig { + x?: number; + y?: number; + width?: number; + height?: number; + } + + interface ToDataURLConfig extends SizeConfig { + callback: Function; + mimeType?: string; + quality?: number; + } + + interface CacheConfig extends SizeConfig { + drawBorder?: boolean; + pixelRatio?: number; + } + + interface ClearConfig extends SizeConfig {} + + class Node { + constructor(config: NodeConfig); + static create(data: any, container?: HTMLElement): T; + + addName(name: string): Node; + blue(): number; + blue(blue: number): this; + brightness(): number; + brightness(brightness: number): this; + contrast(): number; + contrast(contrast: number): this; + blurRadius(): number; + blurRadius(radius: number): this; + cache(config?: CacheConfig): this; + clearCache(): this; + clear(bounds?: ClearConfig): this; + clone(attrs?: NodeConfig): this; + destroy(): void; + + dragBoundFunc(): (pos: Vector2d) => Vector2d; + dragBoundFunc(dragBoundFunc: (pos: Vector2d) => Vector2d): this; + draggable(): boolean; + draggable(draggable: boolean): this; + draw(): this; + embossBlend(): boolean; + embossBlend(embossBlend: boolean): this; + embossDirection(): string; + embossDirection(embossDirection: string): this; + embossStrength(): number; + embossStrength(level: number): this; + embossWhiteLevel(): number; + embossWhiteLevel(embossWhiteLevel: number): this; + enhance(): number; + enhance(enhance: number): this; + filters(): Filter[]; + filters(filters: Filter): this; + findAncestor( + selector?: string, + includeSelf?: boolean, + stopNode?: Node + ): this; + findAncestors( + selector?: string, + includeSelf?: boolean, + stopNode?: Node + ): Node[]; + fire(eventType: string, evt?: any, bubble?: boolean): this; + getAbsoluteOpacity(): number; + getAbsolutePosition(): Vector2d; + getAbsoluteTransform(): Transform; + getAbsoluteZIndex(): number; + getAncestors(): Collection; + getAttr(attr: string): any; + getAttrs(): NodeConfig; + // CHECK + getCanvas(): Canvas; + getClassName(): string; + getClientRect(): SizeConfig; + getContext(): Context; + getDepth(): number; + getHeight(): number; + getHitCanvas(): Canvas; + getLayer(): Layer; + getParent(): Container; + getPosition(): Vector2d; + // CHECK + getSize(): { + width: number; + height: number; + }; + getStage(): Stage; + getTransform(): Transform; + getType(): String; + getWidth(): number; + getZIndex(): number; + green(): number; + green(green: number): this; + hasName(name: string): boolean; + height(): number; + height(height: number): this; + hide(): void; + hue(): number; + hue(hue: number): this; + id(): string; + id(id: string): this; + isDragging(): boolean; + isListening(): boolean; + isVisible(): boolean; + kaleidoscopeAngle(): number; + kaleidoscopeAngle(kaleidoscopeAngle: number): this; + kaleidoscopePower(): number; + kaleidoscopePower(kaleidoscopePower: number): this; + levels(): number; + levels(levels: number): this; + listening(): any; + listening(listening: boolean): this; + listening(listening: string): this; + move(move: Vector2d): this; + moveDown(): boolean; + moveTo(newContainer: Container): this; + moveToBottom(): boolean; + moveToTop(): boolean; + moveUp(): boolean; + name(): string; + name(name: string): this; + noise(): number; + noise(noise: number): this; + off(evtStr: string): this; + offset(): Vector2d; + offset(offset: Vector2d): this; + offsetX(): number; + offsetX(offsetX: number): this; + offsetY(): number; + offsetY(offsetY: number): this; + on(evtStr: string, handler: Function): this; + opacity(): number; + opacity(opacity: number): this; + pixelSize(): number; + pixelSize(pixelSize: number): this; + position(): Vector2d; + position(position: Vector2d): this; + red(): number; + red(red: number): this; + remove(): this; + removeName(name: string): this; + rotate(theta: number): this; + rotation(): number; + rotation(rotation: number): this; + saturation(): number; + saturation(saturation: number): this; + scale(): Vector2d; + scale(scale: Vector2d): this; + scaleX(): number; + scaleX(scaleX: number): this; + scaleY(): number; + scaleY(scaleY: number): this; + setAbsolutePosition(pos: Vector2d): this; + setAttr(attr: string, val: any): this; + setAttrs(attrs: NodeConfig): void; + setId(id: string): this; + setSize(size: { width: number; height: number }): this; + setZIndex(zIndex: number): void; + shouldDrawHit(): boolean; + show(): this; + skew(): Vector2d; + skew(skew: Vector2d): this; + skewX(): number; + skewX(skewX: number): this; + skewY(): number; + skewY(skewY: number): this; + startDrag(): void; + stopDrag(): void; + threshold(): number; + threshold(threshold: number): this; + to(params: any): void; + toDataURL(config: ToDataURLConfig): string; + toImage(config: ToDataURLConfig): HTMLImageElement; + toJSON(): string; + toObject(): any; + transformsEnabled(): string; + transformsEnabled(transformsEnabled: string): this; + value(): number; + value(value: number): this; + visible(): any; + visible(visible: boolean): this; + visible(visible: string): this; + width(): number; + width(width: number): this; + x(): number; + x(x: number): this; + y(): number; + y(y: number): this; + } + + interface ContainerConfig extends NodeConfig { + clearBeforeDraw?: boolean; + clipFunc?: (ctx: CanvasRenderingContext2D) => void; + } + + class Container extends Node { + constructor(params?: ContainerConfig); + add(...children: Node[]): this; + getChildren(filterfunc?: Function): Collection; + clip(): SizeConfig; + clip(clip: SizeConfig | undefined | null): this; + clipHeight(): number; + clipHeight(clipHeight: number | undefined | null): this; + clipWidth(): number; + clipWidth(clipWidth: number | undefined | null): this; + clipX(): number; + clipX(clipX: number | undefined | null): this; + clipY(): number; + clipY(clipY: number | undefined | null): this; + clipFunc(): (ctx: CanvasRenderingContext2D) => void; + clipFunc(ctx: CanvasRenderingContext2D | undefined | null): void; + destroyChildren(): void; + find(selector?: string): Collection; + findOne(selector: string): T; + getAllIntersections(pos: Vector2d): Shape[]; + hasChildren(): boolean; + removeChildren(): void; + } + + interface ShapeConfig extends NodeConfig { + fill?: string; + fillPatternImage?: HTMLImageElement; + fillPatternX?: number; + fillPatternY?: number; + fillPatternOffset?: Vector2d; + fillPatternOffsetX?: number; + fillPatternOffsetY?: number; + fillPatternScale?: Vector2d; + fillPatternScaleX?: number; + fillPatternScaleY?: number; + fillPatternRotation?: number; + fillPatternRepeat?: string; + fillLinearGradientStartPoint?: Vector2d; + fillLinearGradientStartPointX?: number; + fillLinearGradientStartPointY?: number; + fillLinearGradientEndPoint?: Vector2d; + fillLinearGradientEndPointX?: number; + fillLinearGradientEndPointY?: number; + fillLinearGradientColorStops?: Array; + fillLinearRadialStartPoint?: Vector2d; + fillLinearRadialStartPointX?: number; + fillLinearRadialStartPointY?: number; + fillLinearRadialEndPoint?: Vector2d; + fillLinearRadialEndPointX?: number; + fillLinearRadialEndPointY?: number; + fillRadialGradientStartRadius?: number; + fillRadialGradientEndRadius?: number; + fillRadialGradientColorStops?: Array; + fillEnabled?: boolean; + fillPriority?: string; + stroke?: string; + strokeWidth?: number; + strokeScaleEnabled?: boolean; + strokeHitEnabled?: boolean; + strokeEnabled?: boolean; + lineJoin?: string; + lineCap?: string; + sceneFunc?: (con: Context) => void; + hitFunc?: (con: Context) => void; + drawFunc?: (con: Context) => void; + shadowColor?: string; + shadowBlur?: number; + shadowOffset?: Vector2d; + shadowOffsetX?: number; + shadowOffsetY?: number; + shadowOpacity?: number; + shadowEnabled?: boolean; + dash?: number[]; + dashEnabled?: boolean; + preventDefault?: boolean; + } + + class Shape extends Node { + constructor(ShapeConfig: ShapeConfig); + preventDefault(): boolean; + preventDefault(preventDefault: boolean): this; + dash(): number[]; + dash(dash: number[]): this; + dashEnabled(): boolean; + dashEnabled(dashEnabled: boolean): this; + drawHitFromCache(alphaThreshold: number): this; + fill(): string; + fill(fill: string): this; + fillEnabled(): boolean; + fillEnabled(fillEnabled: boolean): this; + fillLinearGradientColorStops(): Array; + fillLinearGradientColorStops(colors: Array): this; + fillLinearGradientStartPoint(): Vector2d; + fillLinearGradientStartPoint(point: Vector2d): Vector2d; + fillLinearGradientStartPointX(): number; + fillLinearGradientStartPointX(x: number): this; + fillLinearGradientStartPointY(): number; + fillLinearGradientStartPointY(y: number): this; + fillLinearGradientEndPoint(): Vector2d; + fillLinearGradientEndPoint(point: Vector2d): this; + fillLinearGradientEndPointX(): number; + fillLinearGradientEndPointX(x: number): this; + fillLinearGradientEndPointY(): number; + fillLinearGradientEndPointY(y: number): this; + fillLinearRadialStartPoint(): Vector2d; + fillLinearRadialStartPoint(point: Vector2d): this; + fillLinearRadialStartPointX(): number; + fillLinearRadialStartPointX(x: number): this; + fillLinearRadialStartPointY(): number; + fillLinearRadialStartPointY(y: number): this; + fillLinearRadialEndPoint(): Vector2d; + fillLinearRadialEndPoint(point: Vector2d): Vector2d; + fillLinearRadialEndPointX(): number; + fillLinearRadialEndPointX(x: number): this; + fillLinearRadialEndPointY(): number; + fillLinearRadialEndPointY(y: number): this; + fillPatternImage(): HTMLImageElement; + fillPatternImage(image: HTMLImageElement): this; + fillRadialGradientStartRadius(): number; + fillRadialGradientStartRadius(radius: number): this; + fillRadialGradientEndRadius(): number; + fillRadialGradientEndRadius(radius: number): this; + fillRadialGradientColorStops(): Array; + fillRadialGradientColorStops(color: Array): this; + fillPatternOffset(): Vector2d; + fillPatternOffset(offset: Vector2d): this; + fillPatternOffsetX(): number; + fillPatternOffsetX(x: number): this; + fillPatternOffsetY(): number; + fillPatternOffsetY(y: number): this; + fillPatternRepeat(): string; + fillPatternRepeat(repeat: string): this; + fillPatternRotation(): number; + fillPatternRotation(rotation: number): this; + fillPatternScale(): Vector2d; + fillPatternScale(scale: Vector2d): this; + fillPatternScaleX(): number; + fillPatternScaleX(x: number): this; + fillPatternScaleY(): number; + fillPatternScaleY(y: number): this; + fillPatternX(): number; + fillPatternX(x: number): number; + fillPatternY(): number; + fillPatternY(y: number): this; + fillPriority(): string; + fillPriority(priority: string): this; + hasFill(): boolean; + hasShadow(): boolean; + hasStroke(): boolean; + hitFunc(): Function; + hitFunc(func: Function): this; + intersects(point: Vector2d): boolean; + lineCap(): string; + lineCap(lineCap: string): this; + lineJoin(): string; + lineJoin(lineJoin: string): this; + sceneFunc(): Function; + sceneFunc(func: (con: Context) => {}): this; + shadowColor(): string; + shadowColor(shadowColor: string): this; + shadowEnabled(): boolean; + shadowEnabled(shadowEnabled: boolean): this; + shadowOffset(): Vector2d; + shadowOffset(shadowOffset: Vector2d): this; + shadowOffsetX(): number; + shadowOffsetX(shadowOffsetX: number): this; + shadowOffsetY(): number; + shadowOffsetY(shadowOffsetY: number): this; + shadowOpacity(): number; + shadowOpacity(shadowOpacity: number): this; + shadowBlur(): number; + shadowBlur(blur: number): this; + stroke(): string; + stroke(stroke: string): this; + strokeEnabled(): boolean; + strokeEnabled(strokeEnabled: boolean): this; + strokeScaleEnabled(): boolean; + strokeScaleEnabled(strokeScaleEnabled: boolean): this; + strokeHitEnabled(): boolean; + strokeHitEnabled(strokeHitEnabled: boolean): this; + strokeWidth(): number; + strokeWidth(strokeWidth: number): this; + } + + interface StageConfig extends ContainerConfig { + container: any; + } + + class Stage extends Container { + constructor(StageConfig: StageConfig); + add(...layers: Layer[]): this; + add(...layers: FastLayer[]): this; + batchDraw(): void; + container(): HTMLElement; + destroy(): void; + drawHit(): void; + getIntersection(pos: Vector2d, selector?: string): Shape; + getLayers(): Layer[]; + getPointerPosition(): Vector2d; + setContainer(con: HTMLElement): void; + setHeight(height: number): void; + setWidth(width: number): void; + } + + interface LayerConfig extends ContainerConfig { + clearBeforeDraw?: boolean; + hitGraphEnabled?: boolean; + } + + class FastLayer extends Container { + constructor(config?: LayerConfig); + drawScene(): void; + hitGraphEnabled(val: boolean): this; + batchDraw(): void; + } + + class Layer extends Container { + constructor(config?: LayerConfig); + getIntersection(pos: Vector2d, selector?: string): Shape; + enableHitGraph(): this; + disableHitGraph(): this; + clearBeforeDraw(): boolean; + clearBeforeDraw(val: boolean): this; + hitGraphEnabled(): boolean; + hitGraphEnabled(val: boolean): this; + batchDraw(): void; + drawScene(): void; + } + + class Group extends Container {} + + interface CanvasConfig { + width: number; + height: number; + pixelRatio: number; + } + + class Canvas { + constructor(CanvasConfig: CanvasConfig); + getContext(): CanvasRenderingContext2D; + getHeight(): number; + getWidth(): number; + getPixelRatio(): number; + setHeight(val: number): void; + setWidth(val: number): void; + setPixelRatio(val: number): void; + setSize(size: { width: number; height: number }): void; + toDataURL(mimeType: string, quality: number): string; + public _canvas: HTMLElement; + } + + class Context { + clear(bounds?: ClearConfig): Context; + clearTrace(): void; + fillShape(shape: Shape): void; + fillStrokeShape(shape: Shape): void; + getCanvas(): Canvas; + getTrace(relaxed: boolean): string; + reset(): void; + setAttr(attr: string, value: any): void; + strokeShape(shape: Shape): void; + + // context pass through methods + // originally from lib.es6.d.ts + arc( + x: number, + y: number, + radius: number, + startAngle: number, + endAngle: number, + anticlockwise?: boolean + ): void; + beginPath(): void; + bezierCurveTo( + cp1x: number, + cp1y: number, + cp2x: number, + cp2y: number, + x: number, + y: number + ): void; + clearRect(x: number, y: number, width: number, height: number): void; + clip(): void; + closePath(): void; + createImageData(imageDataOrSw: number | ImageData, sh?: number): ImageData; + createLinearGradient( + x0: number, + y0: number, + x1: number, + y1: number + ): CanvasGradient; + createPattern( + image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement, + repetition: string + ): CanvasPattern; + createRadialGradient( + x0: number, + y0: number, + r0: number, + x1: number, + y1: number, + r1: number + ): CanvasGradient; + drawImage( + image: + | HTMLImageElement + | HTMLCanvasElement + | HTMLVideoElement + | ImageBitmap, + dstX: number, + dstY: number + ): void; + drawImage( + image: + | HTMLImageElement + | HTMLCanvasElement + | HTMLVideoElement + | ImageBitmap, + dstX: number, + dstY: number, + dstW: number, + dstH: number + ): void; + drawImage( + image: + | HTMLImageElement + | HTMLCanvasElement + | HTMLVideoElement + | ImageBitmap, + srcX: number, + srcY: number, + srcW: number, + srcH: number, + dstX: number, + dstY: number, + dstW: number, + dstH: number + ): void; + isPointInPath(x: number, y: number): boolean; + fill(): void; + fillRect(x: number, y: number, width: number, height: number): void; + strokeRect(x: number, y: number, w: number, h: number): void; + fillText(text: string, x: number, y: number): void; + measureText(text: string): TextMetrics; + getImageData(sx: number, sy: number, sw: number, sh: number): ImageData; + lineTo(x: number, y: number): void; + moveTo(x: number, y: number): void; + rect(x: number, y: number, w: number, h: number): void; + putImageData(imagedata: ImageData, dx: number, dy: number): void; + quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void; + restore(): void; + rotate(angle: number): void; + save(): void; + scale(x: number, y: number): void; + setLineDash(segments: number[]): void; + getLineDash(): number[]; + setTransform( + m11: number, + m12: number, + m21: number, + m22: number, + dx: number, + dy: number + ): void; + stroke(path?: Path2D): void; + strokeText(text: string, x: number, y: number): void; + transform( + m11: number, + m12: number, + m21: number, + m22: number, + dx: number, + dy: number + ): void; + translate(x: number, y: number): void; + } + + class Tween { + constructor(params: any); + destroy(): void; + finish(): Tween; + pause(): Tween; + play(): Tween; + reset(): Tween; + reverse(): Tween; + seek(t: number): Tween; + } + + // Shapes + + interface RingConfig extends ShapeConfig { + innerRadius: number; + outerRadius: number; + clockwise?: boolean; + } + + class Ring extends Shape { + constructor(RingConfig: RingConfig); + innerRadius(): number; + innerRadius(innerRadius: number): this; + outerRadius(): number; + outerRadius(outerRadius: number): this; + } + + interface ArcConfig extends ShapeConfig { + angle: number; + innerRadius: number; + outerRadius: number; + clockwise?: boolean; + } + + class Arc extends Shape { + constructor(ArcConfig: ArcConfig); + angle(): number; + angle(angle: number): this; + clockwise(): boolean; + clockwise(clockwise: boolean): this; + innerRadius(): number; + innerRadius(innerRadius: number): this; + outerRadius(): number; + outerRadius(outerRadius: number): this; + } + + interface CircleConfig extends ShapeConfig { + radius: number; + } + + class Circle extends Shape { + constructor(CircleConfig: CircleConfig); + radius(): number; + radius(radius: number): this; + } + + interface EllipseConfig extends ShapeConfig { + radius: any; + } + + class Ellipse extends Shape { + constructor(EllipseConfig: EllipseConfig); + radius(): any; + radius(radius: any): this; + radiusX(): number; + radiusX(radiusX: number): this; + radiusY(): number; + radiusY(radiusY: number): this; + } + + interface ImageConfig extends ShapeConfig { + image: HTMLImageElement; + crop?: SizeConfig; + } + + class Image extends Shape { + constructor(ImageConfig: ImageConfig); + image(): HTMLImageElement; + image(image: HTMLImageElement): this; + crop(): SizeConfig; + crop(crop: SizeConfig): this; + cropX(): number; + cropX(cropX: number): this; + cropY(): number; + cropY(cropY: number): this; + cropWidth(): number; + cropWidth(cropWidth: number): this; + cropHeight(): number; + cropHeight(cropHeight: number): this; + } + + interface LineConfig extends ShapeConfig { + points: number[]; + tension?: number; + closed?: boolean; + } + + class Line extends Shape { + constructor(LineConfig: LineConfig); + closed(): boolean; + closed(closed: boolean): this; + tension(): number; + tension(tension: number): this; + points(): number[]; + points(points: number[]): this; + } + + interface ArrowConfig extends ShapeConfig { + points: number[]; + tension?: number; + closed?: boolean; + pointerLength?: number; + pointerWidth?: number; + } + + class Arrow extends Shape { + constructor(ArrowConfig: ArrowConfig); + closed(): boolean; + closed(closed: boolean): this; + tension(): number; + tension(tension: number): this; + points(): number[]; + points(points: number[]): this; + pointerLength(): Number; + pointerLength(Length: Number): this; + pointerWidth(): Number; + pointerWidth(Width: Number): this; + pointerAtBeginning(): boolean; + pointerAtBeginning(Should: boolean): this; + } + + interface RectConfig extends ShapeConfig { + cornerRadius?: number; + } + + class Rect extends Shape { + constructor(RectConfig: RectConfig); + cornerRadius(): number; + cornerRadius(cornerRadius: number): this; + } + + interface SpriteConfig extends ShapeConfig { + animation: string; + animations: any; + frameIndex?: number; + image: HTMLImageElement; + } + + class Sprite extends Shape { + constructor(SpriteConfig: SpriteConfig); + start(): void; + stop(): void; + animation(): string; + animation(val: string): this; + animations(): any; + animations(val: any): this; + frameIndex(): number; + frameIndex(val: number): this; + image(): HTMLImageElement; + image(image: HTMLImageElement): this; + frameRate(): number; + frameRate(frameRate: number): this; + } + + interface TextConfig extends ShapeConfig { + text: string; + fontFamily?: string; + fontSize?: number; + fontStyle?: string; + align?: string; + padding?: number; + lineHeight?: number; + wrap?: string; + } + + class Text extends Shape { + constructor(TextConfig: TextConfig); + getTextWidth(): number; + getTextHeight(): number; + text(): string; + text(text: string): this; + fontFamily(): string; + fontFamily(fontFamily: string): this; + fontSize(): number; + fontSize(fontSize: number): this; + fontStyle(): string; + fontStyle(fontStyle: string): this; + fontVariant(): string; + fontVariant(fontVariant: string): this; + align(): string; + align(align: string): this; + padding(): number; + padding(padding: number): this; + lineHeight(): number; + lineHeight(lineHeight: number): this; + wrap(): string; + wrap(wrap: string): this; + textDecoration(): string; + textDecoration(textDecoration: string): this; + } + + interface WedgeConfig extends ShapeConfig { + angle: number; + radius: number; + clockwise?: boolean; + } + + class Wedge extends Shape { + constructor(WedgeConfig: WedgeConfig); + angle(): number; + angle(angle: number): this; + radius(): number; + radius(radius: number): this; + clockwise(): boolean; + clockwise(clockwise: boolean): this; + } + + // Plugins + interface TagConfig extends ShapeConfig { + pointerDirection?: string; + pointerWidth?: number; + pointerHeight?: number; + cornerRadius?: number; + } + + class Tag extends Shape { + constructor(config: TagConfig); + pointerDirection(): string; + pointerDirection(pointerDirection: string): this; + pointerWidth(): number; + pointerWidth(pointerWidth: number): this; + pointerHeight(): number; + pointerHeight(pointerHeight: number): this; + cornerRadius(): number; + cornerRadius(cornerRadius: number): this; + } + + interface LabelInterface extends ContainerConfig {} + + class Label extends Group { + constructor(LabelInterface: LabelInterface); + getText(): Text; + getTag(): Rect; + } + + interface PathConfig extends ShapeConfig { + data: string; + } + + class Path extends Shape { + constructor(PathConfig: PathConfig); + data(): string; + data(data: string): this; + } + + interface RegularPolygonConfig extends ShapeConfig { + sides: number; + radius: number; + } + + class RegularPolygon extends Shape { + constructor(RegularPolygonConfig: RegularPolygonConfig); + sides(): number; + sides(sides: number): this; + radius(): number; + radius(radius: number): this; + } + + interface StarConfig extends ShapeConfig { + numPoints: number; + innerRadius: number; + outerRadius: number; + } + + class Star extends Shape { + constructor(StarConfig: StarConfig); + numPoints(): number; + numPoints(numPoints: number): this; + innerRadius(): number; + innerRadius(innerRadius: number): this; + outerRadius(): number; + outerRadius(outerRadius: number): this; + } + + interface TextPathConfig extends ShapeConfig { + text: string; + data: string; + fontFamily?: string; + fontSize?: number; + fontStyle?: string; + } + + class TextPath extends Shape { + constructor(TextPathConfig: TextPathConfig); + getTextWidth(): number; + getTextHeight(): number; + setText(text: string): void; + text(): string; + text(text: string): this; + fontFamily(): string; + fontFamily(fontFamily: string): this; + fontSize(): number; + fontSize(fontSize: number): this; + fontStyle(): string; + fontStyle(fontStyle: string): this; + } + + class Collection { + [i: number]: any; + static toCollection(arr: any[]): Collection; + each(f: (el: Node) => void): void; + toArray(): any[]; + length: number; + } + + class Transform { + copy(): Transform; + getMatrix(): number[]; + getTranslation(): Vector2d; + invert(): Transform; + multiply(matrix: number[]): Transform; + point(point: Vector2d): Vector2d; + rotate(deg: number): Transform; + scale(x: number, y: Number): Transform; + setAbsolutePosition(): Transform; + skew(x: number, y: Number): Transform; + translate(x: number, y: Number): Transform; + } + + interface Vector2d { + x: number; + y: number; + } +} + +export = Konva;