/** * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved. * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options */ /** * Domain payload built by the view layer from a `ClipboardEvent` or `DragEvent`. Keeps DOM * types inside the view; downstream code sees only data. */ export type AIChatInputPaste = { files: ReadonlyArray; plainText: string; /** * `true` when the source `DataTransfer` carried at least one directory entry. */ hasDirectory: boolean; /** * Bypasses {@link AIChatPasteOptions#longTextThreshold}: any non-empty text attaches. * Used by drag-and-drop so dropped text isn't lost. */ forceTextAttachment: boolean; /** * Suppresses the textarea's default paste behaviour. Called by the controller when it * has fully handled the input (e.g. attached long pasted text as a file). */ preventDefault: () => void; }; type AIChatPasteOptions = { /** * Localized label for the long-text attachment, without extension (e.g. `Pasted Text`). * Rendered as `