import { ASObject } from "../../avm2/nat/ASObject"; import { DataBuffer } from "@awayjs/graphics"; import { Point } from "./Point"; import { Bounds } from "../../base/utilities"; import { Vector3D } from "./Vector3D"; export declare class Matrix extends ASObject { static axClass: typeof Matrix; static classInitializer(): void; static classSymbols: string[]; static instanceSymbols: string[]; constructor(a?: number, b?: number, c?: number, d?: number, tx?: number, ty?: number); static FromUntyped(object: any): Matrix; static FromDataBuffer(input: DataBuffer): Matrix; static FROZEN_IDENTITY_MATRIX: Matrix; static TEMP_MATRIX: Matrix; _data: Float64Array; set a(a: number); get a(): number; set b(b: number); get b(): number; set c(c: number); get c(): number; set d(d: number); get d(): number; set tx(tx: number); get tx(): number; set ty(ty: number); get ty(): number; /** * this = this * other */ concat(other: Matrix): void; /** * this = other * this */ preMultiply(other: Matrix): void; /** * target = other * this */ preMultiplyInto(other: Matrix, target: Matrix): void; invert(): void; invertInto(target: Matrix): void; identity(): void; createBox(scaleX: number, scaleY: number, rotation?: number, tx?: number, ty?: number): void; createGradientBox(width: number, height: number, rotation?: number, tx?: number, ty?: number): void; rotate(angle: number): void; translate(dx: number, dy: number): void; scale(sx: number, sy: number): void; deltaTransformPoint(point: Point): Point; transformX(x: number, y: number): number; transformY(x: number, y: number): number; transformPoint(point: Point): Point; transformPointInPlace(point: any): Point; transformBounds(bounds: Bounds): void; getDeterminant(): number; getScaleX(): number; getScaleY(): number; getAbsoluteScaleX(): number; getAbsoluteScaleY(): number; getSkewX(): number; getSkewY(): number; copyFrom(other: Matrix): void; copyFromUntyped(object: any): void; setTo(a: number, b: number, c: number, d: number, tx: number, ty: number): void; toTwipsInPlace(): Matrix; toPixelsInPlace(): Matrix; toSerializedScaleInPlace(): Matrix; copyRowTo(row: number, vector3D: Vector3D): void; copyColumnTo(column: number, vector3D: Vector3D): void; copyRowFrom(row: number, vector3D: Vector3D): void; copyColumnFrom(column: number, vector3D: Vector3D): void; /** * Updates the scale and skew componenets of the matrix. */ updateScaleAndRotation(scaleX: number, scaleY: number, skewX: number, skewY: number): void; clone(): Matrix; equals(other: Matrix): boolean; toString(): string; writeExternal(output: DataBuffer): void; }