import type { LocaleText } from '../locale/index.js'; import type { ElementNode, SchemaEnv } from '../schema/index.js'; export interface ClipFile { readonly name: string; readonly type: string; readonly size: number; } export interface PasteData { readonly custom: string; readonly html: string; readonly plain: string; readonly files: readonly ClipFile[]; readonly types: readonly string[]; } export interface PasteCandidate { readonly id: string; readonly label: LocaleText | string; build(): readonly ElementNode[]; readonly icon?: string; readonly inline?: boolean; } export interface DocSource { json(): unknown; html(): string; md(): string; } export interface IoFilter { readonly id: string; readonly label: LocaleText | string; readonly paste?: (data: PasteData) => PasteCandidate | readonly PasteCandidate[] | null; readonly save?: { readonly extension: string; readonly write: (doc: DocSource) => string; readonly canonical: boolean; readonly lossy?: boolean; readonly mime?: string; }; readonly read?: { readonly extensions: readonly string[]; readonly run: (name: string, text: string) => unknown; }; } export declare function $assertIoFilter(value: IoFilter): void; export interface MdContext { children(separator?: string, indent?: string): string; escape(raw: string): string; html(): string; readonly indent: string; readonly env: SchemaEnv; } export type MdBuilder = (node: ElementNode, ctx: MdContext) => string; export type MdBuilders = Readonly>; //# sourceMappingURL=contract.d.ts.map