import type { SuggestionsPluginConfig } from './plugins/suggestions/plugin-suggestions'; import type { CollabPluginConfig } from './plugins/collab/plugin-collab'; import type { CursorsPluginConfig } from './plugins/cursors/plugin-cursors'; import type { FileUploaderConfig } from '@hyvor/design/components'; export interface SchemaConfig { codeBlock: boolean; customHtml: boolean; embed: boolean; image: boolean; audio: boolean; bookmark: boolean; toc: boolean; table: boolean; button: boolean; suggestions: boolean; } export declare const defaultSchemaConfig: SchemaConfig; export type UploadFileConfig = { uploader: (file: Blob, name: string | null, type: 'image' | 'audio') => Promise<{ url: string; } | null>; } & Pick; export interface LinkSearchResult { title: string; url: string; description?: string; } export interface LinkSearchConfig { label: string; placeholder?: string; noResultsText?: string; errorText?: string; scopes?: { id: string | number; name: string; }[]; defaultScopeId?: string | number; search: (query: string, scopeId?: string | number) => Promise; } export interface EditorConfig { colorButtonBackground: string; colorButtonText: string; codeBlockConfig: { language: boolean; annotations: boolean; annotationsUrl: string | null; fileName: boolean; }; uploadFileConfig?: UploadFileConfig; /** * @deprecated use uploadFileConfig.uploader instead. */ fileUploader?: UploadFileConfig['uploader']; /** * @deprecated use uploadFileConfig.maxFileSizeInMB instead. */ fileMaxSizeInMB?: number; image: { oversizedNoteText: string; }; embed?: (url: string) => Promise; bookmark?: (url: string) => Promise; linkSearch?: LinkSearchConfig[]; suggestions?: SuggestionsPluginConfig; collab?: CollabPluginConfig; cursors?: CursorsPluginConfig; } export declare const defaultEditorConfig: EditorConfig; export interface ImageUploadResult { src: string; alt?: string; caption?: string; } export interface BookmarkLink { url: string; title: string | null; description: string | null; siteName: string | null; siteUrl: string | null; thumbnailUrl: string | null; iconUrl: string | null; }