import { Key } from "ts-keycode-enum";
import { IMigalibOptions } from "./migaliboptions.interface";
import { TextureRegion } from "./textureregion";
export declare const Migalib: {
    init: (update: () => void, render: () => void, options?: IMigalibOptions) => void;
    start: () => Promise<void>;
    stop: () => void;
    setFpsLimit: (fpsLimit: number) => void;
    getFpsLimit: () => number;
    loadSound: (name: string, src: string) => Promise<void>;
    playSound: (name: string, options?: {
        loop?: boolean;
        volume?: number;
    }) => void;
    setSoundRate: (name: string, rate: number) => void;
    stopSound: (name: string) => void;
    loadTexture: (name: string, imageSrc: string, scale?: number) => Promise<void>;
    setBackgroundColor: (r: number, g: number, b: number) => void;
    drawBegin: () => void;
    drawEnd: () => void;
    draw: (textureRegion: TextureRegion, x: number, y: number, options?: {
        width?: number;
        height?: number;
        scaleX?: number;
        scaleY?: number;
        rotation?: number;
        originX?: number;
        originY?: number;
    }) => void;
    setTintColor: (tintColor: number) => void;
    getDeltaTime: () => number;
    getRenderDeltaTime: () => number;
    getTimeSinceStart: () => number;
    getDisplayWidth: () => number;
    getDisplayHeight: () => number;
    keyboard: {
        isPressed: (key: Key) => boolean;
        resetKey: (key: Key) => void;
    };
    mouse: {
        getMouseX: () => number;
        getMouseY: () => number;
        isLeftMouseButtonPressed: () => boolean;
        isRightMouseButtonPressed: () => boolean;
        isMiddleMouseButtonPressed: () => boolean;
        resetRightMouseButton: () => void;
        resetLeftMouseButton: () => void;
        resetMiddleMouseButton: () => void;
        isScrollUp: () => boolean;
        isScrollDown: () => boolean;
    };
    math: {
        interpolate: (num: number) => number;
        intersects: (x1: number, y1: number, width1: number, height1: number, x2: number, y2: number, width2: number, height2: number) => boolean;
        rectContainsPoint: (x1: number, y1: number, width1: number, height1: number, pointX: number, pointY: number) => boolean;
        calculateRotationToPoint: (sourceX: number, sourceY: number, destinationX: number, destinationY: number) => number;
        lerp: (a: number, b: number, t: number, transform?: (num: number) => number) => number;
        easeIn: (t: number) => number;
        easeOut: (t: number) => number;
        easeInOut: (t: number) => number;
        lerpPingPong: (a: number, b: number, t: number, transform?: (num: number) => number) => number;
    };
    getWebGLColor: (originalHex: number, alphaChannel?: number) => number;
    Key: typeof Key;
    TextureRegion: typeof TextureRegion;
};
