import { RetainedPictureWatermarkInput, WatermarkInput } from '../../../../document-api/src/index.js'; import { SurfaceHandle, SurfaceRequest } from '../../core/types/index.js'; import { BrowserDocumentApi } from '../browser-document-api.js'; import { FontFamilyOption, WatermarkHandle } from './types.js'; import { WatermarkPreview } from './watermark-dialog-state.js'; interface WatermarkEditor { doc: Pick; host?: { watermarkPreview?(input: { watermark: WatermarkInput | RetainedPictureWatermarkInput; sectionId?: string; expectedRevision?: string; }): Promise; events?: { subscribe(listener: (event: { type: string; }) => void): () => void; }; }; } interface WatermarkControllerOptions { getEditor(): WatermarkEditor | null; getMode(): string | null; getFonts(): readonly FontFamilyOption[]; getContainer?(): HTMLElement | null; openSurface: ((request: SurfaceRequest) => SurfaceHandle) | null; announce?(message: string): void; } export declare function createWatermarkController(options: WatermarkControllerOptions): WatermarkHandle & { destroy(): void; }; export {};