import type { DocFragment } from '../doc/types.js'; import type { ParserConfig } from '../dom/parser.js'; export interface DocSchema { single: boolean; copy: (dataTransfer: DataTransfer, doc: DocFragment, element: Element) => void; doc: (state: T) => DocFragment; js: (doc: DocFragment) => T; paste: (dataTransfer: DataTransfer, config: ParserConfig) => DocFragment; } export type InferDoc = T extends DocSchema ? N : never; export type InferNode = T extends DocSchema ? ExtractItem : never; type ExtractItem = T extends (infer I)[] ? ExtractItem : T; export {};