import { CommandExecutionResult, SuperDocUI, SuperDocUIOptions } from './types.js'; type FirstPartyCommandMutation = { selectionReader?: { capture: () => { read: () => Promise; isCurrent: (info: unknown) => boolean; } | null; }; supports: (memberPath: string) => boolean; run: (memberPath: string, args: readonly unknown[]) => unknown; runListApply: (input: unknown) => Promise; }; export declare function registerFirstPartyCommandMutation(superdoc: object, host: object, mutation: FirstPartyCommandMutation): void; /** * Read the page numbers of the caret's section for the built-in popover. Resolves * null when the controller has no page-number support or no section yet. */ export declare function readFirstPartyPageNumbers(ui: object): Promise; export declare function executeFirstPartyCommandAsync(ui: Pick, id: string, payload?: unknown): Promise; export declare function executeFirstPartyShortcutAsync(ui: object, id: string, payload?: unknown): Promise; /** * Heavy-read policy for the async read coordinator (source-loading deferral). * One shared table: the coordinator's gate and the table-driven policy tests * both consume THIS list, so the deferred set cannot silently drift from the * tested set. Keys are coordinator cache keys (exact) or key families * (prefix). See the gate in `readAsync` for the runtime semantics. */ interface HeavyDocReadPolicyEntry { key: string; match: 'exact' | 'prefix'; /** Audit rationale — why this key is catalog-scale (or reserved). */ note: string; } export declare const HEAVY_DOC_READ_POLICY: readonly HeavyDocReadPolicyEntry[]; /** Whether a coordinator cache key falls under the heavy-read policy. */ export declare function isHeavyDocReadKey(key: string): boolean; export declare function createSuperDocUI(options: SuperDocUIOptions): SuperDocUI; export {};