import { Scene } from '@hackforplay/next';
import Cursor, { CursorMode } from '../utils/cursor';
import { Selection } from '../utils/selection';
import { IEditing, IEditPatch, IPage, ITile } from './types';
/**
 * パレットが選択されていない状態ではペンにしないこと
 * パレットが選択されたらペンに変更すること
 */
export declare const cursorModeState: import("recoil").RecoilState<CursorMode>;
export declare const palettePagesState: import("recoil").RecoilValueReadOnly<IPage[]>;
export declare const paletteSelectionState: import("recoil").RecoilState<Selection | null>;
export declare const paletteNibState: import("recoil").RecoilValueReadOnly<ITile[][]>;
export declare const debugState: import("recoil").RecoilState<boolean>;
/**
 * 初期値が設定されるまで loading
 */
export declare const sceneMapState: import("recoil").RecoilState<import("@hackforplay/next").SceneMap>;
/**
 * マップデータからスクリーンのサイズを計算する
 */
export declare const sceneScreenState: import("recoil").RecoilValueReadOnly<import("@hackforplay/next").SceneScreen>;
export declare const sceneState: import("recoil").RecoilValueReadOnly<Scene>;
export declare const undoPatchesState: import("recoil").RecoilState<IEditPatch[]>;
export declare const editingState: import("recoil").RecoilState<IEditing>;
export declare const cursorState: import("recoil").RecoilState<Cursor | null>;
export declare const preloadNibState: import("recoil").RecoilValueReadOnly<void>;
/**
 * 【注意】
 * Scene['map']['base'] が表すタイルがパレット上のどこにあるかを表す
 * パレットとシーンの間でタイルの index を共通にすることを暗黙的な前提としている
 * しかし設計上そのような制約はないため、この Selection は疑わしい値とすべき
 * 例えば base の初期値はパレットに存在しない草原なので、本来表示することはできないが、
 * 便宜上、最も若い page の最も左上の座標を baseSelection として提供する
 */
export declare const baseSelectionState: import("recoil").RecoilState<Selection>;
