import type { HeadlessState, State } from './state';
import { Elements, FEN, MouchEvent, PocketRoles, Pockets } from './types';
/**
 * Logically maybe belongs to fen.ts, but put here to avoid merge conflicts from upsteam
 * Analogous to fen.ts->read(), but for pocket part of FEN
 * TODO: See todo in fen.ts->read() as well. Not sure if pocket parsing belongs there unless return
 *       type is extended to contain pocket state.
 * */
export declare function readPockets(fen: FEN, pocketRoles: PocketRoles): Pockets;
export declare function renderPocketsInitial(state: HeadlessState, elements: Elements, pocketTop?: HTMLElement, pocketBottom?: HTMLElement): void;
export declare function click(state: HeadlessState, e: MouchEvent): void;
export declare function drag(state: HeadlessState, e: MouchEvent): void;
/**
 * updates each piece element attributes based on state
 * */
export declare function renderPockets(state: State): void;
export declare function pockets2str(pockets: Pockets): string;
/**
 * todo: Ideally this whole method should disappear. It is legacy solution from when pocket was outside CG for the case
 *       when dragging started while another premove/predrop was set. After that premove/drop executes and turn is again
 *       opp's, we are again in predrop state and need to set those again
 *       Maybe predroppable should be initialized in board.ts->setSelected() and implemented similarly as premove dests
 *       Could happen together with further refactoring to make pocket more of a first class citizen and enable other
 *       stuff like highlighting last move etc. maybe.
 *       Even if not made part of the setSelected infrastructure, i am pretty sure this is not needed if we track and
 *       check better what is dragged/clicked and with proper combination of if-s in render.ts and clean-up-to-undef logic
 * */
export declare function setPredropDests(state: HeadlessState): void;
