export interface MarkdownSourceSelection { start: number; end: number; direction: 'backward' | 'forward' | 'none'; } export interface MarkdownSourceEdit { markdown: string; selection: MarkdownSourceSelection; } export interface MarkdownSourceSelectionState { markdown: string; selection: MarkdownSourceSelection; text: string; } export interface MarkdownSourceInsert { replacement: string; selectedRange: { start: number; end: number; }; } export interface MarkdownSourceLink { label: string; rawLabel: string; range: { start: number; end: number; }; source: string; } export type MarkdownSourceCommand = 'blockquote' | 'bold' | 'bullet-list' | 'code' | 'code-block' | 'heading-1' | 'heading-2' | 'heading-3' | 'heading-4' | 'heading-5' | 'heading-6' | 'horizontal-rule' | 'italic' | 'ordered-list' | 'paragraph' | 'strike' | 'table' | 'task-list'; export declare function isMarkdownSourceCommandActive(markdown: string, requestedSelection: MarkdownSourceSelection, command: MarkdownSourceCommand): boolean; export declare function applyMarkdownSourceCommand(markdown: string, requestedSelection: MarkdownSourceSelection, command: MarkdownSourceCommand): MarkdownSourceEdit; export declare function replaceMarkdownSourceSelection(markdown: string, requestedSelection: MarkdownSourceSelection, replacement: string, selectedRange?: { start: number; end: number; }): MarkdownSourceEdit; export declare function createMarkdownLinkSourceInsert(label: string, source: string): MarkdownSourceInsert; export declare function createMarkdownImageSourceInsert(altText: string, source: string): MarkdownSourceInsert; export declare function findMarkdownSourceLink(markdown: string, requestedSelection: MarkdownSourceSelection): MarkdownSourceLink | null; export declare function createMarkdownSourceLinkRemoval(link: MarkdownSourceLink): MarkdownSourceInsert;