import { InterpolationMethod } from "commons-math-interpolation";
export interface Point {
    x: number;
    y: number;
}
export declare const enum ZoomMode {
    x = 0,
    y = 1,
    xy = 2
}
export { InterpolationMethod };
export interface EditorState {
    knots: Point[];
    xMin: number;
    xMax: number;
    yMin: number;
    yMax: number;
    extendedDomain: boolean;
    relevantXMin?: number;
    relevantXMax?: number;
    gridEnabled: boolean;
    snapToGridEnabled: boolean;
    interpolationMethod: InterpolationMethod;
    primaryZoomMode: ZoomMode;
    focusShield: boolean;
    curveColor: string;
    defaultKnotColor: string;
    selectedKnotColor: string;
    activeKnotColor: string;
    labelColor: string;
    primaryLineColor: string;
    secondaryLineColor: string;
    axisColor: string;
    background: string;
    secondaryBackground: string;
}
export declare class Widget {
    private wctx;
    constructor(canvas: HTMLCanvasElement, connected?: boolean);
    setEventTarget(eventTarget: EventTarget): void;
    setConnected(connected: boolean): void;
    addEventListener(type: string, listener: EventListener): void;
    removeEventListener(type: string, listener: EventListener): void;
    getEditorState(): EditorState;
    setEditorState(eState: Partial<EditorState>): void;
    getFunction(): (x: number) => number;
    getRawHelpText(): string[];
    getFormattedHelpText(): string;
    clipboardCopyEventHandler(event: ClipboardEvent): void;
    clipboardPasteEventHandler(event: ClipboardEvent): void;
}
