editor.min.d.ts 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. // ./types/editor.min.d.ts
  2. import { ClassicEditor } from '@ckeditor/ckeditor5-editor-classic';
  3. import type Plugin from '@ckeditor/ckeditor5-core/src/plugin';
  4. import { EditorWatchdog } from '@ckeditor/ckeditor5-watchdog';
  5. import '@ckeditor/ckeditor5-core';
  6. declare global {
  7. interface Window {
  8. Editor: typeof ClassicEditor & {
  9. builtinPlugins: Array<typeof Plugin>;
  10. defaultConfig: Record<string, unknown>;
  11. EditorWatchdog: typeof EditorWatchdog;
  12. };
  13. }
  14. type UploadedImage = {
  15. src: string;
  16. name: string;
  17. size: number;
  18. extension: string;
  19. type: string;
  20. image: File;
  21. };
  22. type UploadedMedia = {
  23. url: string;
  24. };
  25. type UploadedFile = {
  26. uuid: string;
  27. name: string;
  28. size: number;
  29. extension: string;
  30. file: File;
  31. };
  32. }
  33. declare module 'ckeditor5' {
  34. interface Editor
  35. {
  36. // 이미지 정보
  37. _imageStore?: UploadedImage[];
  38. // 동영상(iframe, video, oembed) 정보
  39. _mediaStore?: UploadedMedia[];
  40. // 첨부 파일 정보
  41. _fileStore?: UploadedFile[];
  42. }
  43. interface EditorConfig {
  44. maxWordCount?: number;
  45. // 이미지 설정
  46. allowImage?: boolean;
  47. imageUploadLimit?: number;
  48. imageUploadMaxSize?: number;
  49. // 동영상 설정
  50. allowMedia?: boolean;
  51. mediaUploadLimit?: number;
  52. // 파일 첨부 설정
  53. allowFile?: boolean;
  54. fileUploadLimit?: number;
  55. fileUploadMaxSize?: number;
  56. fileUploadExtension?: string[];
  57. }
  58. }
  59. export {};