import type { HeadlessState } from './state'; import type { DrawShape, DrawBrushes } from './draw'; import { Color, Dests, DropDests, Elements, FEN, Geometry, Key, MoveMetadata, Notation, Piece, PocketRoles, Role, SetPremoveMetadata, Variant } from './types'; export interface Config { fen?: FEN; orientation?: Color; turnColor?: Color; check?: Color | boolean; lastMove?: Key[]; selected?: Key; coordinates?: boolean; autoCastle?: boolean; viewOnly?: boolean; disableContextMenu?: boolean; addPieceZIndex?: boolean; addDimensionsCssVars?: boolean; blockTouchScroll?: boolean; highlight?: { lastMove?: boolean; check?: boolean; }; animation?: { enabled?: boolean; duration?: number; }; movable?: { free?: boolean; color?: Color | 'both'; dests?: Dests; showDests?: boolean; events?: { after?: (orig: Key, dest: Key, metadata: MoveMetadata) => void; afterNewPiece?: (role: Role, key: Key, metadata: MoveMetadata) => void; }; rookCastle?: boolean; }; premovable?: { enabled?: boolean; showDests?: boolean; castle?: boolean; dests?: Key[]; events?: { set?: (orig: Key, dest: Key, metadata?: SetPremoveMetadata) => void; unset?: () => void; }; }; predroppable?: { enabled?: boolean; showDropDests?: boolean; dropDests?: Key[]; current?: { role: Role; key: Key; }; events?: { set?: (role: Role, key: Key) => void; unset?: () => void; }; }; draggable?: { enabled?: boolean; distance?: number; autoDistance?: boolean; showGhost?: boolean; deleteOnDropOff?: boolean; }; selectable?: { enabled?: boolean; }; events?: { change?: () => void; move?: (orig: Key, dest: Key, capturedPiece?: Piece) => void; dropNewPiece?: (piece: Piece, key: Key) => void; select?: (key: Key) => void; insert?: (elements: Elements) => void; pocketSelect: (piece: Piece) => void; }; dropmode?: { active?: boolean; piece?: Piece; showDropDests?: boolean; dropDests?: DropDests; }; drawable?: { enabled?: boolean; visible?: boolean; defaultSnapToValidMove?: boolean; eraseOnClick?: boolean; shapes?: DrawShape[]; autoShapes?: DrawShape[]; brushes?: DrawBrushes; pieces?: { baseUrl?: string; }; onChange?: (shapes: DrawShape[]) => void; }; geometry?: Geometry; variant?: Variant; chess960?: boolean; notation?: Notation; pocketRoles?: PocketRoles; } export declare function applyAnimation(state: HeadlessState, config: Config): void; export declare function configure(state: HeadlessState, config: Config): void;