/** Compatibility types for JSXGraph. These are generated by inspecting an object's output and may not be right.  */
export type JXGObject = {
    Xjc: null | number;
    Yjc: null | number;
    _org_type: number;
    _pos: number;
    ancestors: Record<string, unknown>;
    baseElement: JXGObject;
    board: {
        BOARD_MODE_NONE: number;
        BOARD_MODE_DRAG: number;
        BOARD_MODE_MOVE_ORIGIN: number;
        [key: string]: unknown;
    };
    childElements: Record<string, unknown>;
    coords: {
        board: object;
        usrCoords: [number, number, number];
        scrCoords: [number, number, number];
        emitter: boolean;
        setCoordinates: Function;
        [key: string]: unknown;
    };
    descendants: Record<string, unknown>;
    dump: boolean;
    elType: string;
    element: undefined | HTMLElement;
    elementClass: number;
    eventHandlers: Record<string, unknown>;
    groups: unknown[];
    hasLabel: boolean;
    highlighted: boolean;
    id: string;
    inherits: unknown[];
    initialCoords: {
        board: object;
        usrCoords: [number, number, number];
        emitter: boolean;
        [key: string]: unknown;
    };
    isConstrained: boolean;
    isDraggable: boolean;
    isReal: boolean;
    lastDragTime: Date;
    methodMap: Record<string, string>;
    mouseover: boolean;
    name: string;
    needsRegularUpdate: boolean;
    needsUpdate: boolean;
    needsUpdateFromParent: boolean;
    notExistingParents: Record<string, unknown>;
    numTraces: number;
    off: (event: string, handler?: Function) => void;
    on: (event: string, handler?: (e: JXGEvent) => void, context?: unknown) => void;
    onPolygon: boolean;
    parents: unknown[];
    position: null | number;
    quadraticform: [number[], number[], number[]];
    rendNode: HTMLElement;
    slideObject: null | unknown;
    slideObjects: unknown[];
    stdform: number[];
    subs: Record<string, unknown>;
    suspended: Record<string, unknown>;
    symbolic: Record<string, unknown>;
    traces: Record<string, unknown>;
    transformations: unknown[];
    trigger: (event: string, data?: unknown) => void;
    triggerEventHandlers: (event: string, data?: unknown) => void;
    type: number;
    visProp: {
        strokecolor: string;
        highlightstrokecolor: string;
        fillcolor: string;
        [key: string]: unknown;
    };
    visPropCalc: {
        visible: boolean;
        [key: string]: unknown;
    };
    visPropOld: {
        fillcolor: string;
        fillopacity: number;
        firstarrow: boolean;
        [key: string]: unknown;
    };
    X(): number;
    Y(): number;
    setAttribute: Function;
    label: {
        needsUpdate: boolean;
        visProp: any;
        fullUpdate: Function;
        update: Function;
    };
    update: Function;
    size: [number, number];
    relativeCoords: {
        usrCoords: [number, number, number];
        setCoordinates: Function;
    };
    fullUpdate: Function;
    setText(text: string): void;
    point1: any;
    point2: any;
    point3: any;
    Value: Function;
    getBoundingBox: () => [number, number, number, number];
    center: JXGObject;
    setRadius: (radius: number) => void;
    radius: number;
    rendNodeInput: HTMLInputElement;
    rendNodeLabel: HTMLElement;
};
export type JXGBoard = JXGObject & {
    create: Function;
    removeObject: Function;
    displayInfobox: (display: boolean) => void;
    updateInfobox: Function;
    updateRenderer: () => void;
    unitX: number;
    unitY: number;
    origin: {
        usrCoords: number[];
        scrCoords: number[];
    };
    BOARD_QUALITY_LOW: number;
    BOARD_QUALITY_HIGH: number;
    updateQuality: number;
    itemsRenderedLowQuality: Record<string, JXGObject>;
};
export type JXGEvent = {
    x: number;
    y: number;
    type: string;
    key: string;
};
declare global {
    namespace JXG {
        const COORDS_BY_USER: unknown;
    }
}
//# sourceMappingURL=types.d.ts.map