import type { IPointLike, TextMeasure, ITextMeasureSpec, IMatrix } from '@visactor/vutils'; import { Matrix } from '@visactor/vutils'; import type { ICamera, ICanvas, ICommonStyleParams, IConicalGradientData, IContext2d, ISetCommonStyleParams, ISetStrokeStyleParams, IStrokeStyleParams, ITextStyleParams, mat4, EnvType, vec3 } from '@visactor/vrender-core'; export declare class BrowserContext2d implements IContext2d { static env: EnvType; baseGlobalAlpha: number; drawPromise?: Promise; mathTextMeasure: TextMeasure; canvas: ICanvas; camera?: ICamera; modelMatrix?: mat4; nativeContext: CanvasRenderingContext2D | any; _inuse: boolean; stack: Matrix[]; disableFill?: boolean; disableStroke?: boolean; disableBeginPath?: boolean; protected matrix: Matrix; protected applyedMatrix?: Matrix; fontFamily: string; fontSize: number; _clearMatrix: IMatrix; _font?: string; set fillStyle(d: string | CanvasGradient | CanvasPattern); get fillStyle(): string | CanvasGradient | CanvasPattern; set font(d: string); get font(): string; set globalAlpha(d: number); get globalAlpha(): number; set lineCap(d: CanvasLineCap); get lineCap(): CanvasLineCap; set lineDashOffset(d: number); get lineDashOffset(): number; set lineJoin(d: CanvasLineJoin); get lineJoin(): CanvasLineJoin; set lineWidth(d: number); get lineWidth(): number; set miterLimit(d: number); get miterLimit(): number; set shadowBlur(d: number); get shadowBlur(): number; set shadowColor(d: string); get shadowColor(): string; set shadowOffsetX(d: number); get shadowOffsetX(): number; set shadowOffsetY(d: number); get shadowOffsetY(): number; set strokeStyle(d: string | CanvasGradient | CanvasPattern); get strokeStyle(): string | CanvasGradient | CanvasPattern; set textAlign(d: CanvasTextAlign); get textAlign(): CanvasTextAlign; set textBaseline(d: CanvasTextBaseline); get textBaseline(): CanvasTextBaseline; get inuse(): boolean; set inuse(use: boolean); dpr: number; constructor(canvas: ICanvas, dpr: number); reset(setTransform?: boolean): void; getCanvas(): ICanvas; getContext(): any; setTransformForCurrent(force?: boolean): void; get currentMatrix(): Matrix; cloneMatrix(m: Matrix): IMatrix; clear(): void; restore(): void; highPerformanceRestore(): void; rotate(rad: number, setTransform?: boolean): void; save(): void; highPerformanceSave(): void; scale(sx: number, sy: number, setTransform?: boolean): void; setScale(sx: number, sy: number, setTransform?: boolean): void; scalePoint(sx: number, sy: number, px: number, py: number, setTransform?: boolean): void; setTransform(a: number, b: number, c: number, d: number, e: number, f: number, setTransform?: boolean, dpr?: number): void; setTransformFromMatrix(matrix: Matrix, setTransform?: boolean, dpr?: number): void; resetTransform(setTransform?: boolean, dpr?: number): void; transform(a: number, b: number, c: number, d: number, e: number, f: number, setTransform?: boolean): void; transformFromMatrix(matrix: Matrix, setTransform?: boolean): void; translate(x: number, y: number, setTransform?: boolean): void; rotateDegrees(deg: number, setTransform?: boolean): void; rotateAbout(rad: number, x: number, y: number, setTransform?: boolean): void; rotateDegreesAbout(deg: number, x: number, y: number, setTransform?: boolean): void; beginPath(): void; clip(fillRule?: CanvasFillRule): void; clip(path: Path2D, fillRule?: CanvasFillRule): void; arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, anticlockwise?: boolean, z?: number): void; arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void; bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number, z?: number): void; closePath(): void; ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, anticlockwise?: boolean): void; lineTo(x: number, y: number, z: number): void; moveTo(x: number, y: number, z: number): void; quadraticCurveTo(cpx: number, cpy: number, x: number, y: number, z: number): void; rect(x: number, y: number, w: number, h: number, z: number): void; createImageData(imageDataOrSw: number | ImageData, sh?: number): ImageData; createLinearGradient(x0: number, y0: number, x1: number, y1: number): any; createPattern(image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement, repetition: string): CanvasPattern; createRadialGradient(x0: number, y0: number, r0: number, x1: number, y1: number, r1: number): CanvasGradient; createConicGradient(x: number, y: number, startAngle: number, endAngle: number): IConicalGradientData; fill(path?: Path2D, fillRule?: CanvasFillRule): void; fillRect(x: number, y: number, width: number, height: number): void; clearRect(x: number, y: number, w: number, h: number): void; project(x: number, y: number, z: number): IPointLike; view(x: number, y: number, z: number): vec3; fillText(text: string, x: number, y: number, z: number): void; getImageData(sx: number, sy: number, sw: number, sh: number): ImageData; getLineDash(): number[]; isPointInPath(x: number, y: number): any; isPointInStroke(x: number, y: number): any; measureText(text: string, method?: 'native' | 'simple' | 'quick'): { width: number; }; putImageData(imagedata: ImageData, dx: number, dy: number): void; setLineDash(segments: number[]): void; stroke(path?: Path2D): void; strokeRect(x: number, y: number, width: number, height: number): void; strokeText(text: string, x: number, y: number, z: number): void; 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; protected fillAttributes: { opacity: number; fillOpacity: number; shadowBlur: number; shadowColor: string; shadowOffsetX: number; shadowOffsetY: number; fill: import("@visactor/vrender-core").IFillType; }; protected strokeAttributes: { opacity: number; outerBorder: Partial; innerBorder: Partial; strokeOpacity: number; lineDash: number[]; lineDashOffset: number; lineWidth: number; lineCap: CanvasLineCap; lineJoin: CanvasLineJoin; miterLimit: number; strokeBoundsBuffer: number; stroke: import("@visactor/vrender-core").IStrokeType | import("@visactor/vrender-core").IStrokeType[]; }; protected textAttributes: { opacity: number; text: string | number | number[] | string[]; maxLineWidth: number; maxWidth: number; textAlign: import("@visactor/vrender-core").TextAlignType; textBaseline: import("@visactor/vrender-core").TextBaselineType; fontSize: number; fontFamily: string; fontWeight: string | number; ellipsis: string | boolean; fontVariant: string; fontStyle: string; lineHeight: string | number; underline: number; lineThrough: number; scaleIn3d: boolean; direction: "horizontal" | "vertical"; verticalMode: number; wordBreak: "break-word" | "break-all" | "keep-all"; ignoreBuf: boolean; heightLimit: number; lineClamp: number; wrap: boolean; whiteSpace: "normal" | "no-wrap"; suffixPosition: "end" | "start" | "middle"; underlineDash: number[]; underlineOffset: number; disableAutoClipedPoptip: boolean; measureMode: import("@visactor/vrender-core").MeasureModeEnum; keepCenterInLine: boolean; }; setCommonStyle(params: ISetCommonStyleParams, attribute: ICommonStyleParams, offsetX: number, offsetY: number, defaultParams?: ICommonStyleParams | Partial[]): void; protected _setCommonStyle(params: ISetCommonStyleParams, attribute: ICommonStyleParams, offsetX: number, offsetY: number, defaultParams?: ICommonStyleParams): void; setShadowBlendStyle(params: ISetCommonStyleParams, attribute: ICommonStyleParams, defaultParams?: ICommonStyleParams | Partial[]): void; protected _clearShadowStyle: boolean; protected _clearFilterStyle: boolean; protected _clearGlobalCompositeOperationStyle: boolean; protected _setShadowBlendStyle(params: ISetCommonStyleParams, attribute: ICommonStyleParams, defaultParams?: ICommonStyleParams): void; setStrokeStyle(params: ISetStrokeStyleParams, attribute: IStrokeStyleParams, offsetX: number, offsetY: number, defaultParams?: IStrokeStyleParams | IStrokeStyleParams[]): void; protected _setStrokeStyle(params: ISetStrokeStyleParams, attribute: IStrokeStyleParams, offsetX: number, offsetY: number, defaultParams?: IStrokeStyleParams): void; setTextStyleWithoutAlignBaseline(params: Partial, defaultParams?: ITextStyleParams, z?: number): void; setTextStyle(params: Partial, defaultParams?: ITextStyleParams, z?: number): void; draw(): void; clearMatrix(setTransform?: boolean, dpr?: number): void; setClearMatrix(a: number, b: number, c: number, d: number, e: number, f: number): void; onlyTranslate(dpr?: number): boolean; release(...params: any): void; }