import type { RayPlugin } from './plugin'; export type ToolbarItem = 'bold' | 'italic' | 'underline' | 'strikethrough' | 'superscript' | 'subscript' | 'uppercase' | 'lowercase' | 'toggleCase' | 'textColor' | 'backgroundColor' | 'fontSize' | 'fontFamily' | 'lineHeight' | 'removeFormat' | 'headings' | 'blockquote' | 'orderedList' | 'unorderedList' | 'indent' | 'outdent' | 'textAlignment' | 'hr' | 'codeBlock' | 'codeInline' | 'imageUpload' | 'fileUpload' | 'youtube' | 'emoji' | 'insertDateTime' | 'link' | 'table' | 'mentions' | 'markdownToggle' | 'importMarkdown' | 'exportMarkdown' | 'highlight' | 'fontSize' | 'taskList' | 'callout' | 'specialChars' | 'spellCheck' | 'undo' | 'redo' | 'showSource' | 'fullscreen' | 'print' | 'fonts' | 'overflowMenu' | 'wordCount'; export type ToolbarGroup = ToolbarItem[]; export interface ImageUploadOptions { /** Endpoint URL returning { url: string } */ imageUploadUrl: string; /** Max file size in bytes, default 20MB */ imageMaxSize?: number; /** File accept string, default 'image/*' */ accept?: string; } export interface FileUploadOptions { /** Endpoint URL returning { url: string } */ fileUploadUrl: string; /** Max file size in bytes, default 50MB */ fileMaxSize?: number; /** File accept string */ accept?: string; } export interface MentionOptions { /** Whether mentions are enabled */ enableMentions?: boolean; /** Trigger character, default '@' */ mentionTag?: string; /** Rendered element type */ mentionElement?: 'span' | 'a'; /** Base URL for links */ mentionUrl?: string; } export interface RayEditorLocale { bold: string; italic: string; underline: string; strikethrough: string; [key: string]: string; } export interface RayEditorOptions { /** * Defines which buttons appear in the toolbar and their grouping. * Each sub-array is a visual group separated by a divider. * @default Full toolbar with all available buttons */ toolbar?: ToolbarGroup[]; imageUpload?: ImageUploadOptions; fileUpload?: FileUploadOptions; mentions?: MentionOptions; imageUploadUrl?: string; imageMaxSize?: number; fileUploadUrl?: string; fileMaxSize?: number; enableMentions?: boolean; mentionTag?: string; mentionElement?: 'span' | 'a'; mentionUrl?: string; toolbarType?: 'default' | 'inline'; overflowMenu?: boolean; readOnly?: boolean; markdownShortcuts?: boolean; wordCount?: boolean; findReplace?: boolean; slashCommands?: boolean; historySize?: number; theme?: 'light' | 'dark' | 'auto'; initStyles?: boolean; stylesheetUrl?: string; plugins?: RayPlugin[]; locale?: Partial; onChange?: (html: string) => void; autoSave?: { /** Interval in milliseconds between saves. Default: 30000 (30 s) */ interval?: number; /** Called with the current HTML on each save tick */ onSave: (html: string) => void; }; } export declare const DEFAULT_TOOLBAR: ToolbarGroup[]; //# sourceMappingURL=options.d.ts.map