///
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;
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;
}