import { EventEmitter } from '../EventEmitter.js'; import { WhiteboardPage, WhiteboardPageRenderer, WhiteboardPageSize, WhiteboardStoredPageData } from './WhiteboardPage.js'; export type { WhiteboardPageSize }; export type WhiteboardPageData = WhiteboardStoredPageData; export type WhiteboardPageSizeSnapshot = { width: number; height: number; originalWidth: number | null; originalHeight: number | null; }; export type WhiteboardDataMeta = { pageSizes: Record; }; export type WhiteboardData = { pages: Record; meta: WhiteboardDataMeta; version: 1; }; export type WhiteboardDataInput = { pages?: Record; meta?: WhiteboardDataMeta; version?: number; }; export type WhiteboardRegistryItem = { id?: string | number; [key: string]: unknown; }; export type WhiteboardEventMap = { tool: [string]; enabled: [boolean]; opacity: [number]; setData: [WhiteboardPage[]]; change: [WhiteboardData]; }; export type WhiteboardInit = { Renderer?: WhiteboardPageRenderer; enabled?: boolean; onChange?: (data: WhiteboardData) => void; onSetData?: (pages: WhiteboardPage[]) => void; onEnabledChange?: (enabled: boolean) => void; }; export declare class Whiteboard extends EventEmitter { #private; constructor(props?: WhiteboardInit); register(type: string, items: WhiteboardRegistryItem[]): void; getType(type: string): WhiteboardRegistryItem[] | undefined; setTool(tool: string): void; getTool(): string; setEnabled(enabled: boolean): void; isEnabled(): boolean; setOpacity(opacity: number): void; getOpacity(): number; getPages(): WhiteboardPage[]; rerender(): void; setPageSize(pageIndex: number, size: WhiteboardPageSize): void; getPage(pageIndex: number): WhiteboardPage | undefined; getWhiteboardData(): WhiteboardData; setWhiteboardData(json: WhiteboardDataInput): void; }