import { ProseMirrorJSON } from '../../core/types/EditorTypes.js';
import { Node as ProseMirrorNode } from 'prosemirror-model';
type BookmarkConfig = {
    name: string;
    id?: string | null;
    colFirst?: number | string | null;
    colLast?: number | string | null;
    displacedByCustomXml?: string | null;
};
type SearchMatch = {
    id: string;
    from: number;
    to: number;
    text: string;
};
export type SearchCommandOptions = {
    highlight?: boolean;
    maxMatches?: number;
    caseSensitive?: boolean;
    searchModel?: 'raw' | 'visible';
};
type DocumentSectionCreateOptions = {
    id?: number;
    title?: string;
    description?: string;
    sectionType?: string;
    isLocked?: boolean;
    html?: string;
    json?: ProseMirrorJSON;
};
type DocumentSectionUpdateOptions = {
    id: number;
    html?: string;
    json?: ProseMirrorJSON;
    attrs?: Record<string, unknown>;
};
type StructuredContentInlineInsert = {
    text?: string;
    json?: ProseMirrorJSON;
    attrs?: Record<string, unknown>;
};
type StructuredContentBlockInsert = {
    html?: string;
    json?: ProseMirrorJSON;
    attrs?: Record<string, unknown>;
};
type StructuredContentUpdateOptions = {
    text?: string;
    html?: string;
    json?: ProseMirrorJSON;
    attrs?: Record<string, unknown>;
    keepTextNodeStyles?: boolean;
};
type StructuredContentTableAppendOptions = {
    id: string;
    tableIndex?: number;
    rows?: Array<string[] | string>;
    copyRowStyle?: boolean;
};
export interface SpecializedCommandAugmentations {
    insertBookmark: (config: BookmarkConfig) => boolean;
    goToBookmark: (name: string) => boolean;
    insertBookmarkEnd: (id: string) => boolean;
    renameBookmark: (name: string, newName: string) => boolean;
    removeBookmark: (name: string) => boolean;
    goToFirstMatch: () => boolean;
    search: (pattern: string | RegExp, options?: SearchCommandOptions) => SearchMatch[];
    goToSearchResult: (match: SearchMatch) => boolean;
    restorePreservedSelection: () => boolean;
    createDocumentSection: (options?: DocumentSectionCreateOptions) => boolean;
    removeSectionAtSelection: () => boolean;
    removeSectionById: (id: number) => boolean;
    lockSectionById: (id: number) => boolean;
    updateSectionById: (options: DocumentSectionUpdateOptions) => boolean;
    insertStructuredContentInline: (options?: StructuredContentInlineInsert) => boolean;
    insertStructuredContentBlock: (options?: StructuredContentBlockInsert) => boolean;
    updateStructuredContentById: (id: string, options?: StructuredContentUpdateOptions) => boolean;
    deleteStructuredContent: (entries: Array<{
        node: ProseMirrorNode;
        pos: number;
    }>) => boolean;
    deleteStructuredContentById: (idOrIds: string | string[]) => boolean;
    deleteStructuredContentAtSelection: () => boolean;
    appendRowsToStructuredContentTable: (options: StructuredContentTableAppendOptions) => boolean;
}
declare module '../../core/types/ChainedCommands.js' {
    interface ExtensionCommandMap extends SpecializedCommandAugmentations {
    }
}
export {};
//# sourceMappingURL=specialized-commands.d.ts.map