/// <reference path="../../pxtlib.d.ts" />
import * as Blockly from "blockly";
import { FieldImageDropdownOptions } from "./field_imagedropdown";
import { FieldImages } from "./field_images";
import { FieldCustom } from "./field_utils";
export interface ImageJSON {
    src: string;
    alt: string;
    width: number;
    height: number;
}
export declare type TilesetDropdownOption = [ImageJSON, string, pxt.Tile];
export declare class FieldTileset extends FieldImages implements FieldCustom {
    protected selectedOption_: TilesetDropdownOption;
    protected static referencedTiles: TilesetDropdownOption[];
    protected static cachedPalette: string;
    protected static cachedRevision: number;
    protected static bitmapCache: Map<string, string>;
    protected static getReferencedTiles(workspace: Blockly.Workspace): TilesetDropdownOption[];
    static getTileImage(t: pxt.Tile): string;
    isFieldCustom_: boolean;
    protected selected: pxt.Tile;
    protected blocksInfo: pxtc.BlocksInfo;
    protected transparent: TilesetDropdownOption;
    protected localTile: pxt.Tile;
    constructor(text: string, options: FieldImageDropdownOptions, validator?: Function);
    initView(): void;
    getValue(): string;
    getText(): string;
    render_(): void;
    doValueUpdate_(newValue: string): void;
    protected doClassValidation_(newValue?: string): string;
    getOptions(opt_useCache?: boolean): any[];
    menuGenerator_: () => [ImageJSON, string][];
    dispose(): void;
    protected updateAssetListener(): void;
    protected assetChangeListener: () => void;
    saveState(_doFullSerialization?: boolean): any;
    loadState(state: any): void;
    getFieldDescription(): string;
}
