import { EventEmitter } from '../EventEmitter'; import { WhiteboardPage } from './WhiteboardPage'; /** * @typedef {{ width: number, height: number, originalWidth?: number, originalHeight?: number }} WhiteboardPageSize * @typedef {{ strokes?: any[], text?: any[], images?: any[] }} WhiteboardPageData * @typedef {{ pages?: Record }} WhiteboardData * @typedef {{ * Renderer?: any, * superdoc?: any, * enabled?: boolean, * onChange?: (data: WhiteboardData) => void, * onSetData?: (pages: WhiteboardPage[]) => void, * onEnabledChange?: (enabled: boolean) => void, * }} WhiteboardInit */ /** * Whiteboard manager for multi-page annotations. */ export class Whiteboard extends EventEmitter { /** * Initialize the whiteboard instance. * @param {WhiteboardInit} [props] */ constructor(props?: WhiteboardInit); /** * Register items for a UI palette type (e.g. stickers, comments). * @param {string} type * @param {any[]} items */ register(type: string, items: any[]): void; /** * Get registered items by type. * @param {string} type * @returns {any[] | undefined} */ getType(type: string): any[] | undefined; /** * Set current tool for all pages. * @param {string} tool */ setTool(tool: string): void; /** * Get current tool. * @returns {string} */ getTool(): string; /** * Enable/disable interactivity for all pages. * @param {boolean} enabled */ setEnabled(enabled: boolean): void; /** * @returns {boolean} */ isEnabled(): boolean; /** * Set overlay opacity. * @param {number} opacity */ setOpacity(opacity: number): void; /** * @returns {number} */ getOpacity(): number; /** * Return all page instances. * @returns {WhiteboardPage[]} */ getPages(): WhiteboardPage[]; /** * Re-render all pages. */ rerender(): void; /** * Set size for a page (creates page if missing). * @param {number} pageIndex * @param {WhiteboardPageSize} size */ setPageSize(pageIndex: number, size: WhiteboardPageSize): void; /** * Get a page by index. * @param {number} pageIndex * @returns {WhiteboardPage} */ getPage(pageIndex: number): WhiteboardPage; /** * Serialize whiteboard data. * @returns {WhiteboardData} */ getWhiteboardData(): WhiteboardData; /** * Load whiteboard data from JSON. * @param {WhiteboardData} json */ setWhiteboardData(json: WhiteboardData): void; #private; } export type WhiteboardPageSize = { width: number; height: number; originalWidth?: number; originalHeight?: number; }; export type WhiteboardPageData = { strokes?: any[]; text?: any[]; images?: any[]; }; export type WhiteboardData = { pages?: Record; }; export type WhiteboardInit = { Renderer?: any; superdoc?: any; enabled?: boolean; onChange?: (data: WhiteboardData) => void; onSetData?: (pages: WhiteboardPage[]) => void; onEnabledChange?: (enabled: boolean) => void; }; //# sourceMappingURL=Whiteboard.d.ts.map