import { Font, FontWeight, FontStyle } from '@nativescript/core/ui/styling/font'; import { Color, View } from '@nativescript/core/ui/core/view'; import { ImageSource } from '@nativescript/core/image-source'; import { Canvas as ICanvas, Paint as IPaint, PorterDuffXfermode as IPorterDuffXfermode, Matrix as IMatrix, Path as IPath, Rect as IRect, RectF as IRectF, FontMetrics as IFontMetrics } from './canvas'; import { CanvasBase } from './canvas.common'; export * from './canvas.common'; export declare enum Style { FILL = 0, STROKE = 1, FILL_AND_STROKE = 2 } export declare enum Cap { ROUND = 1, SQUARE = 2, BUT = 0 } export declare enum Join { BEVEL = 2, MITER = 0, ROUND = 1 } export declare enum Align { LEFT = 0, RIGHT = 1, CENTER = 2 } export declare enum Direction { CCW = 0, CW = 1 } export declare enum TileMode { CLAMP = 0, MIRROR = 1, REPEAT = 2 } export declare enum FillType { EVEN_ODD = 0, INVERSE_EVEN_ODD = 1, INVERSE_WINDING = 2, WINDING = 3 } export declare enum Op { DIFFERENCE = 0, INTERSECT = 1, REPLACE = 2, REVERSE_DIFFERENCE = 3, UNION = 4, XOR = 5 } export declare enum LayoutAlignment { ALIGN_NORMAL = 0, ALIGN_CENTER = 1, ALIGN_OPPOSITE = 2 } export declare enum PorterDuffMode { ADD = 0, CLEAR = 16, DARKEN = 4, DST = 0, DST_ATOP = 24, DST_IN = 22, DST_OUT = 23, DST_OVER = 21, LIGHTEN = 5, MULTIPLY = 1, OVERLAY = 3, SCREEN = 2, SRC = 0, SRC_ATOP = 20, SRC_IN = 18, SRC_OUT = 19, SRC_OVER = 0, XOR = 25 } export declare class Rect implements IRect { get cgRect(): CGRect; set cgRect(rect: CGRect); set(...args: any[]): void; inset(dx: number, dy: number): void; union(...params: any[]): void; offsetTo(x: number, y: number): void; offset(dx: number, dy: number): void; centerX(): number; centerY(): number; intersect(...args: any[]): boolean; contains(...args: any[]): boolean; _rect: CGRect; left: number; top: number; right: number; bottom: number; constructor(...args: any[]); toString(): string; width(): number; height(): number; } export declare class RectF extends Rect { } export declare class Matrix implements IMatrix { _transform: CGAffineTransform; constructor(); mapRect(rect: Rect): Rect; setRotate(degrees: number, px?: number, py?: number): void; static MSCALE_X: number; static MSKEW_X: number; static MTRANS_X: number; static MSKEW_Y: number; static MSCALE_Y: number; static MTRANS_Y: number; static MPERSP_0: number; static MPERSP_1: number; static MPERSP_2: number; getValues(param: number[]): void; setScale(sx: number, sy: number, px?: number, py?: number): void; preScale(sx: number, sy: number, px?: number, py?: number): boolean; setConcat(mat1: IMatrix, mat2: IMatrix): boolean; postSkew(sx: number, sy: number, px?: number, py?: number): any; postScale(sx: number, sy: number, px?: number, py?: number): boolean; preSkew(sx: number, sy: number, px?: number, py?: number): boolean; mapPoints(...args: any[]): void; mapVectors(...args: any[]): void; setPolyToPoly(param0: number[], param1: number, param2: number[], param3: number, param4: number): boolean; postRotate(degrees: number, px?: number, py?: number): boolean; mapRadius(param0: number): number; set(mat: IMatrix): void; preRotate(degrees: number, px?: number, py?: number): boolean; postTranslate(tx: number, ty: number): boolean; setSinCos(sin: number, cos: number, px?: number, py?: number): void; rectStaysRect(): boolean; equals(mat: IMatrix): boolean; isAffine(): boolean; setSkew(sx: number, sy: number, px?: number, py?: number): void; reset(): void; toShortString(): string; setTranslate(tx: number, ty: number): void; postConcat(mat: IMatrix | CGAffineTransform): boolean; preConcat(mat: IMatrix | CGAffineTransform): boolean; setRectToRect(param0: IRectF, param1: IRectF, param2: any): boolean; isIdentity(): boolean; toString(): string; preTranslate(tx: number, ty: number): boolean; setValues(values: number[]): void; invert(output: IMatrix): boolean; hashCode(): number; wait(...args: any[]): void; clone(...args: any[]): void; notify(...args: any[]): void; getClass(...args: any[]): any; finalize(): void; notifyAll(): void; } export declare class PathEffect { } export declare class DashPathEffect extends PathEffect { intervals: number[]; phase: number; constructor(intervals: number[], phase: number); } export declare class Path implements IPath { private _path; private _bPath?; _fillType: FillType; getOrCreateBPath(): UIBezierPath; getCGPath(): any; getBPath(): UIBezierPath; setBPath(bPath: UIBezierPath): void; constructor(); computeBounds(rect: RectF, exact: boolean): void; isRect(rect: Rect): boolean; getCurrentPoint(): CGPoint; rMoveTo(dx: number, dy: number): void; addLines(points: number[], offset?: number, length?: number, close?: boolean): void; setLines(points: number[], offset?: number, length?: number, close?: boolean): void; addCubicLines(points: number[], offset?: number, length?: number, close?: boolean): void; setCubicLines(points: number[], offset?: number, length?: number, close?: boolean): void; arcTo(rect: Rect, startAngle: number, sweepAngle: number, forceMoveTo?: boolean): void; offset(dx: number, dy: number, output?: Path): void; rCubicTo(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number): void; rQuadTo(cpx: number, cpy: number, x: number, y: number): void; addRoundRect(...params: any[]): void; addPath(...params: any[]): void; rLineTo(param0: number, param1: number): void; lineTo(x: number, y: number): void; quadTo(cpx: number, cpy: number, x: number, y: number): void; transform(mat: Matrix, output?: Path): void; reset(): void; addArc(...params: any[]): void; close(): void; addCircle(x: number, y: number, r: number, d: Direction): void; rewind(): void; setLastPoint(param0: number, param1: number): void; toggleInverseFillType(): void; moveTo(x: number, y: number): void; setFillType(value: FillType): void; isEmpty(): boolean; cubicTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void; incReserve(param0: number): void; getFillType(): FillType; addRect(...params: any[]): void; addOval(...params: any[]): void; isInverseFillType(): boolean; set(path: Path): void; } export declare class FontMetrics implements IFontMetrics { ascent: number; descent: number; bottom: number; leading: number; top: number; } export declare class Paint implements IPaint { getTextPath(text: string, start: number, end: number, x: number, y: number, path: Path): void; setFilterBitmap(param0: boolean): void; setTypeface(font: Font | UIFont): Font; setTextAlign(align: Align): void; getTextAlign(): Align; _color: Color; style: Style; align: Align; _font: Font; strokeWidth: number; strokeMiter: number; strokeCap: Cap; strokeJoin: Join; antiAlias: boolean; dither: boolean; alpha: number; currentContext: any; shadowLayer?: { radius: number; dx: number; dy: number; color: Color; }; shader: any; setShadowLayer(radius: number, dx: number, dy: number, color: number | Color | string): void; clearShadowLayer(): void; getAlpha(): number; getStyle(): Style; setStrokeMiter(value: number): void; setARGB(a: number, r: number, g: number, b: number): void; measureText(text: string, start?: number, end?: any): number; getTextBounds(text: string, start: number, end: number, rect: Rect): void; isAntiAlias(): boolean; setStrokeJoin(value: Join): void; getStrokeJoin(): Join; getShader(): any; setStrokeWidth(value: number): void; setStrokeCap(value: Cap): void; isDither(): boolean; setAlpha(value: number): void; setStyle(value: Style): void; getStrokeMiter(): number; setDither(value: boolean): void; setAntiAlias(value: boolean): void; getStrokeWidth(): number; getStrokeCap(): Cap; setShader(value: any): void; constructor(); get font(): Font; setFontFamily(familyName: string): void; set fontFamily(familyName: string); get fontFamily(): string; getFontFamily(): string; set fontWeight(weight: FontWeight); setFontWeight(weight: FontWeight): void; set fontStyle(style: FontStyle); setFontStyle(style: FontStyle): void; getUIFont(): UIFont; getUIColor(): UIColor; getTextSize(): number; set textSize(textSize: number); get textSize(): number; setTextSize(textSize: any): void; get color(): Color | number | string; set color(color: Color | number | string); setColor(color: Color | number | string): void; getColor(): Color; clear(): void; pathEffect: PathEffect; setPathEffect(param0: PathEffect): void; xfermode: IPorterDuffXfermode; setXfermode(param0: IPorterDuffXfermode): IPorterDuffXfermode; getXfermode(): IPorterDuffXfermode; getFontMetrics(fontMetrics?: FontMetrics): any; drawShader(ctx: any): void; _textAttribs: NSMutableDictionary; getDrawTextAttribs(): NSMutableDictionary; } export declare class Canvas implements ICanvas { _cgContext: any; _paint: Paint; needsApplyDefaultPaint: boolean; _width: number; _height: number; _scale: number; setBitmap(image: any): void; release(): any; clear(): void; get ctx(): any; setContext(context: any, width: any, height: any): any; getDensity(): number; setDensity(density: number): void; getDrawFilter(): any; setDrawFilter(filter: any): void; rotate(...args: any[]): void; scale(...args: any[]): void; translate(dx: number, dy: number): void; skew(sx: number, sy: number): void; getClipBounds(): IRect; restoreCount: number; restore(): void; restoreToCount(count: any): void; save(): number; drawPaint(paint: Paint): void; drawARGB(a: number, r: number, g: number, b: number): void; drawRGB(r: number, g: number, b: number): void; drawColor(color: number | Color | string): void; drawBitmap(...args: any[]): void; drawPoint(x: number, y: number, paint: Paint): void; drawPoints(...args: any[]): void; drawLine(startX: number, startY: number, stopX: number, stopY: number, paint: Paint): void; drawLines(...args: any[]): void; concat(mat: Matrix): void; drawCircle(cx: number, cy: number, radius: number, paint: Paint): void; drawOval(...args: any[]): void; drawPath(path: Path, paint: Paint): void; clipOutPath(path: IPath): boolean; clipOutRect(...args: any[]): boolean; clipPath(...args: any[]): boolean; drawView(view: View, rect?: Rect): void; getWidth(): number; getHeight(): number; constructor(imageOrWidth: ImageSource | UIImage | number, height?: number); startApplyPaint(paint?: Paint, withFont?: boolean): Paint; finishApplyPaint(paint: any): void; _createContextFromImage(source: UIImage): any; _createContext(w: any, h: any): any; fillRect(x: number, y: number, w: number, h: number, paint?: Paint): void; drawRect(...params: any[]): void; drawImage(x: number, y: number, w: number, h: number, image: ImageSource | UIImage): void; clipRect(...params: any[]): boolean; private _drawEOFPath; private _drawPath; drawRoundRect(...params: any[]): void; drawArc(...params: any[]): void; drawText(...params: any[]): void; drawTextOnPath(text: string | NSAttributedString, path: Path, hOffset: number, vOffset: number, paint: Paint): void; drawTextRun(text: string, start: number, end: number, contextStart: number, contextEnd: number, x: number, y: number, isRtl: boolean, paint: IPaint): void; drawPosText(...arg: any[]): void; getCGImage(): any; getImage(): UIImage; } export declare function createImage(options: { width: number; height: number; scale?: number; }): ImageSource; export declare function releaseImage(image: ImageSource): void; export declare class UICustomCanvasView extends UIView { _canvas: Canvas; _owner: WeakRef; static initWithOwner(owner: WeakRef): UICustomCanvasView; drawRect(dirtyRect: any): void; frameRatePaint: Paint; } export declare class CanvasView extends CanvasBase { onDraw(canvas: Canvas): void; nativeViewProtected: UICustomCanvasView; createNativeView(): UICustomCanvasView; _onSizeChanged(): void; redraw(): void; invalidate(): void; } export declare class LinearGradient { x0: number; y0: number; x1: number; y1: number; colors: any; stops: any; tileMode: TileMode; _gradient: any; constructor(x0: number, y0: number, x1: number, y1: number, colors: any, stops: any, tileMode: TileMode); get gradient(): any; release(): void; } export declare class RadialGradient { centerX: number; centerY: number; radius: number; colors: any; stops: any; tileMode: TileMode; _gradient: any; constructor(centerX: number, centerY: number, radius: number, colors: any, stops: any, tileMode: TileMode); get gradient(): any; release(): void; } export declare class PorterDuffXfermode { mode?: number; constructor(mode?: number); } export declare class StaticLayout { private text; private paint; private width; private align; private spacingmult; private spacingadd; private includepad; rect: CGRect; nsAttributedString: NSAttributedString; constructor(text: any, paint: Paint, width: number, align: LayoutAlignment, spacingmult: any, spacingadd: any, includepad: any); toDraw: NSMutableAttributedString; createAttributedStringToDraw(): void; draw(canvas: Canvas): void; getBounds(): CGRect; getWidth(): number; getHeight(): number; }