/// <reference path="../../pxtlib.d.ts" />
/// <reference path="../../pxtsim.d.ts" />
import * as Blockly from "blockly";
import { FieldCustom } from "./field_utils";
export declare class FieldMatrix extends Blockly.Field implements FieldCustom {
    private static CELL_WIDTH;
    private static CELL_HORIZONTAL_MARGIN;
    private static CELL_VERTICAL_MARGIN;
    private static CELL_CORNER_RADIUS;
    private static BOTTOM_MARGIN;
    private static Y_AXIS_WIDTH;
    private static X_AXIS_HEIGHT;
    private static TAB;
    isFieldCustom_: boolean;
    SERIALIZABLE: boolean;
    private params;
    private onColor;
    private offColor;
    private static DEFAULT_OFF_COLOR;
    private scale;
    private matrixWidth;
    private matrixHeight;
    private yAxisLabel;
    private xAxisLabel;
    private cellState;
    private cells;
    private elt;
    private currentDragState_;
    private selected;
    constructor(text: string, params: any, validator?: Blockly.FieldValidator);
    private keyHandler;
    private clearSelection;
    private removeKeyboardFocusHandlers;
    private blurHandler;
    private setFocusIndicator;
    /**
     * Show the inline free-text editor on top of the text.
     * @private
     */
    showEditor_(): void;
    private initMatrix;
    private getLabel;
    private dontHandleMouseEvent_;
    private clearLedDragHandler;
    updateEditable(): void;
    private createRow;
    private createCell;
    private toggleRect;
    private handleRootMouseMoveListener;
    private getColor;
    private getOpacity;
    private updateCell;
    setValue(newValue: string | number, restoreState?: boolean): void;
    render_(): void;
    getValue(): string;
    private restoreStateFromString;
    private updateValue;
    private getYAxisWidth;
    private getXAxisHeight;
}
