import { SVGOptions } from "./types.js"; import { CanvasOptions, Key, Layer, PixelFormat, Position, RGBAColor, Resolution, TextureDrawOptions, LoopOptions, WindowEventType, WindowEventHandler } from "./types.js"; import { SpriteAnimation } from "./animation.js"; import { Path } from "./path.js"; export declare class Canvas { protected _width: number; protected _height: number; protected _window: ArrayBuffer; protected _renderer: ArrayBuffer; protected _currentBitPerPixel: PixelFormat; protected _scale: number; protected _startFrameTime: number; protected _frameTime: number; protected _isLoopMode: boolean; protected _loop: NodeJS.Timeout; protected _fonts: { fontName: string; file: string; }[]; protected _textures: { textureID: string; file: string; }[]; private _currentFrametime; protected _antialias: boolean; protected _isAttachedMode: boolean; protected _attachLoop: NodeJS.Timeout; private _closed; private _loopGeneration; private _windowHandlers; TOP_LEFT: Position; TOP_RIGHT: Position; TOP_CENTER: Position; CENTER_LEFT: Position; CENTER_RIGHT: Position; CENTER: Position; BOTTOM_LEFT: Position; BOTTOM_RIGHT: Position; BOTTOM_CENTER: Position; constructor(windowTitle: string, width: number, height: number, xPos?: number, yPos?: number, options?: CanvasOptions); show(): void; hide(): void; resize(width: number, height: number): void; requestClose(): void; pollEvents(): void; setBackgroundColor(color: RGBAColor): void; sleep(ms: number): void; drawPoint(color: RGBAColor, position: Position): void; drawLine(color: RGBAColor, from: Position, to: Position): void; drawRectangle(color: RGBAColor, pos: Position, width: number, height: number, fill?: boolean): void; loadRawData(pixels: Uint8Array, bitPerPixel?: PixelFormat): void; loadPNG(filename: string): void; loadJPG(filename: string): void; getWidth(): number; get width(): number; getHeight(): number; get height(): number; clear(): void; getBitPerPixel(): PixelFormat; setBitPerPixel(bitPerPixel: PixelFormat): void; get bitPerPixel(): PixelFormat; getRawData(): Uint8Array; dumpPNG(filename: string): void; dumpJPG(filename: string): void; getScale(): number; get scale(): number; onClick(callback: (x: number, y: number) => void): void; onKeyDown(callback: (key: Key) => void): void; onKeyUp(callback: (key: Key) => void): void; initRenderSequence(): void; exposeRender(): void; waitFrame(): void; loop(callback: (deltaMs: number) => void, options?: LoopOptions): void; batch(callback: () => void): void; get frameTime(): number; get fps(): number; onKeysDown(callback: (keys: Key[]) => void): void; onKeysUp(callback: (keys: Key[]) => void): void; drawArc(color: RGBAColor, center: Position, radius: number, startingAngle: number, endingAngle: number): void; drawText(text: string, fontName: string, size: number, color: RGBAColor, start: Position): void; loadFont(fontName: string, filePath: string): void; private _searchFont; static convertPolarCoords(center: Position, angle: number, radius: number): Position; loadTexture(textureID: string, filePath: string): void; loadSVG(textureID: string, source: string | Uint8Array, options?: SVGOptions): void; drawTexture(textureID: string, pos: Position, options?: TextureDrawOptions): void; unloadTexture(textureID: string): void; drawAnimation(animation: SpriteAnimation, pos: Position, options?: Omit): void; static getScreenResolution(): Resolution; getTextureResolution(textureID: string): Resolution; addLayer(layerID: string, bitPerPixel: PixelFormat, backgroundColor?: RGBAColor): void; changeLayer(layerID: string): void; useMainLayer(): void; removeLayer(layerID: string): void; drawPath(path: Path, pos?: Position, color?: RGBAColor): void; getLayers(): Layer[]; get layers(): Layer[]; activateLayer(layerID: string): void; deactivateLayer(layerID: string): void; clearAll(): void; set antialiasing(set: boolean); get antialiasing(): boolean; moveLayer(layerID: string, direction: "up" | "down", steps?: number): void; attach(buffer: Uint8Array, bitPerPixel: PixelFormat): void; detach(): void; close(): void; endLoop(): void; onWindowEvent(type: WindowEventType, callback: WindowEventHandler): () => void; onWindowResize(callback: (width: number, height: number) => void): () => void; onWindowMove(callback: (x: number, y: number) => void): () => void; onWindowFocus(callback: () => void): () => void; onWindowUnfocus(callback: () => void): () => void; onWindowMinimize(callback: () => void): () => void; onWindowMaximize(callback: () => void): () => void; onWindowRestore(callback: () => void): () => void; onWindowShow(callback: () => void): () => void; onWindowHide(callback: () => void): () => void; onWindowMouseEnter(callback: () => void): () => void; onWindowMouseLeave(callback: () => void): () => void; onWindowClose(callback: () => boolean | void): () => void; private _dispatchWindowEvent; get mousePosition(): Position; applyFilter(fn: (v: number, i: number, buff: Uint8Array) => number): void; }