import { border, box, destructor, dimensions, scale, xy } from '@synnaxlabs/x'; import { text } from '../../text/aether'; export interface FillTextOptions { useAtlas?: boolean; } export type Radii = number | DOMPointInit | Array; /** * Radii for `roundRect` in the order the canvas and CSS use: top-left, top-right, * bottom-right, bottom-left. */ export declare const domRadii: (radius: border.CrudeRadius) => Radii; export declare class SugaredOffscreenCanvasRenderingContext2D implements OffscreenCanvasRenderingContext2D { readonly scale_: scale.XY; readonly wrapped: OffscreenCanvasRenderingContext2D; readonly atlasRegistry: text.AtlasRegistry; private cachedFont; private cachedFillStyle; private cachedStrokeStyle; private cachedLineWidth; private cachedGlobalAlpha; private cachedTextAlign; private cachedTextBaseline; private cachedLineCap; private cachedLineJoin; private cachedMiterLimit; private dpr; constructor(wrap: OffscreenCanvasRenderingContext2D, atlasRegistry: text.AtlasRegistry, dpr: number, scale_?: scale.XY); get fontStretch(): CanvasFontStretch; set fontStretch(value: CanvasFontStretch); get fontVariantCaps(): CanvasFontVariantCaps; set fontVariantCaps(value: CanvasFontVariantCaps); isContextLost(): boolean; get wordSpacing(): string; set wordSpacing(value: string); get letterSpacing(): string; set letterSpacing(value: string); get textRendering(): CanvasTextRendering; set textRendering(value: CanvasTextRendering); private checkAtlasFillStyle; reset(): void; applyScale(scale: scale.XY): SugaredOffscreenCanvasRenderingContext2D; get canvas(): OffscreenCanvas; get miterLimit(): number; set miterLimit(value: number); get globalAlpha(): number; set globalAlpha(value: number); get globalCompositeOperation(): GlobalCompositeOperation; set globalCompositeOperation(value: GlobalCompositeOperation); get fillStyle(): string | CanvasGradient | CanvasPattern; set fillStyle(value: string | CanvasGradient | CanvasPattern); get strokeStyle(): string | CanvasGradient | CanvasPattern; set strokeStyle(value: string | CanvasGradient | CanvasPattern); drawImage(image: CanvasImageSource, dx: number, dy: number): void; drawImage(image: CanvasImageSource, dx: number, dy: number, dw: number, dh: number): void; drawImage(image: CanvasImageSource, sx: number, sy: number, sw: number, sh: number, dx: number, dy: number, dw: number, dh: number): void; beginPath(): void; clip(fillRule?: CanvasFillRule | undefined): void; clip(path: Path2D, fillRule?: CanvasFillRule | undefined): void; fill(fillRule?: CanvasFillRule | undefined): void; fill(path: Path2D, fillRule?: CanvasFillRule | undefined): void; isPointInPath(x: number, y: number, fillRule?: CanvasFillRule | undefined): boolean; isPointInPath(path: Path2D, x: number, y: number, fillRule?: CanvasFillRule | undefined): boolean; isPointInStroke(x: number, y: number): boolean; isPointInStroke(path: Path2D, x: number, y: number): boolean; stroke(path?: Path2D): void; createConicGradient(startAngle: number, x: number, y: number): CanvasGradient; createLinearGradient(x0: number, y0: number, x1: number, y1: number): CanvasGradient; createPattern(image: CanvasImageSource, repetition: string | null): CanvasPattern | null; createRadialGradient(x0: number, y0: number, r0: number, x1: number, y1: number, r1: number): CanvasGradient; get filter(): string; set filter(value: string); createImageData(sw: number, sh: number, settings?: ImageDataSettings | undefined): ImageData; createImageData(imagedata: ImageData): ImageData; getImageData(sx: number, sy: number, sw: number, sh: number, settings?: ImageDataSettings | undefined): ImageData; putImageData(imagedata: ImageData, dx: number, dy: number): void; putImageData(imagedata: ImageData, dx: number, dy: number, dirtyX: number, dirtyY: number, dirtyWidth: number, dirtyHeight: number): void; get imageSmoothingEnabled(): boolean; set imageSmoothingEnabled(value: boolean); get imageSmoothingQuality(): ImageSmoothingQuality; set imageSmoothingQuality(value: ImageSmoothingQuality); arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, counterclockwise?: boolean | undefined): 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): void; closePath(): void; ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise?: boolean | undefined): void; lineTo(x: number, y: number): void; moveTo(x: number, y: number): void; quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void; rect(x: number, y: number, w: number, h: number): void; roundRect(x: number, y: number, w: number, h: number, radii?: Radii): void; get lineCap(): CanvasLineCap; set lineCap(value: CanvasLineCap); get lineDashOffset(): number; set lineDashOffset(value: number); get lineJoin(): CanvasLineJoin; set lineJoin(value: CanvasLineJoin); /** @returns the width in CSS pixels of a single device pixel. */ get hairlineWidth(): number; get lineWidth(): number; set lineWidth(value: number); getLineDash(): number[]; setLineDash(segments: number[] | Iterable): void; clearRect(x: number, y: number, w: number, h: number): void; fillRect(x: number, y: number, w: number, h: number): void; strokeRect(x: number, y: number, w: number, h: number): void; get shadowBlur(): number; set shadowBlur(value: number); get shadowColor(): string; set shadowColor(value: string); get shadowOffsetX(): number; set shadowOffsetX(value: number); get shadowOffsetY(): number; restore(): void; save(): void; fillText(text: string, x: number, y: number, maxWidth?: number | undefined, options?: FillTextOptions): void; measureText(text: string): TextMetrics; textDimensions(label: string, options?: FillTextOptions): dimensions.Dimensions; strokeText(text: string, x: number, y: number, maxWidth?: number | undefined): void; get direction(): CanvasDirection; set direction(value: CanvasDirection); get font(): string; set font(value: string); get fontKerning(): CanvasFontKerning; set fontKerning(value: CanvasFontKerning); get textAlign(): CanvasTextAlign; set textAlign(value: CanvasTextAlign); get textBaseline(): CanvasTextBaseline; set textBaseline(value: CanvasTextBaseline); getTransform(): DOMMatrix; resetTransform(): void; rotate(angle: number): void; scale(x: number, y: number): void; scissor(region: box.Box, overScan?: xy.XY, radius?: border.CrudeRadius): destructor.Destructor; setTransform(a: number, b: number, c: number, d: number, e: number, f: number): void; setTransform(transform?: DOMMatrix2DInit | undefined): void; transform(a: number, b: number, c: number, d: number, e: number, f: number): void; translate(x: number, y: number): void; } export declare class ScaledPath2D { readonly scale_: scale.XY; readonly path: Path2D; constructor(scale_?: scale.XY, path?: Path2D | string); addPath(path: Path2D, transform?: DOMMatrix2DInit): void; arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, counterclockwise?: boolean): 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): void; closePath(): void; ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise?: boolean): void; lineTo(x: number, y: number): void; moveTo(x: number, y: number): void; quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void; rect(x: number, y: number, w: number, h: number): void; roundRect(x: number, y: number, w: number, h: number, radii?: Radii): void; getPath(): Path2D; } //# sourceMappingURL=canvas.d.ts.map