import type { Scene, Store } from "@excalidraw/element";
import type { GlobalPoint } from "@excalidraw/math";
import type { FontMetadata } from "@excalidraw/common";
import type { ElementsMap, ExcalidrawElement, ExcalidrawTextElement, NonDeletedExcalidrawElement } from "@excalidraw/element/types";
import type { MermaidConfig } from "@excalidraw/mermaid-to-excalidraw";
import type { MermaidToExcalidrawResult } from "@excalidraw/mermaid-to-excalidraw/dist/interfaces";
import type { AppClassProperties, AppState } from "./types";
interface MermaidToExcalidrawLibProps {
    loaded: boolean;
    api: Promise<{
        parseMermaidToExcalidraw: (definition: string, config?: MermaidConfig) => Promise<MermaidToExcalidrawResult>;
    }>;
}
export declare function allowDoubleTapEraser(): any;
export declare function isPanWithRightMouseEnabled(): boolean;
export declare function getMaxZoom(): number;
export declare function isExcaliBrainView(): any;
export declare function getExcalidrawContentEl(): HTMLElement;
export declare function hideFreedrawPenmodeCursor(): boolean;
export declare function getOpenAIDefaultVisionModel(): any;
export declare function getFontMetrics(fontFamily: ExcalidrawTextElement["fontFamily"], fontSize?: number): {
    unitsPerEm: number;
    ascender: number;
    descender: number;
    lineHeight: number;
    baseline: number;
    fontString: string;
};
export declare function registerLocalFont(fontMetrics: FontMetadata & {
    name: string;
}, uri: string): void;
export declare function getFontFamilies(): string[];
export declare const getDefaultColorPalette: () => readonly (readonly [string, string, string, string, string])[];
export declare function registerFontsInCSS(): Promise<void>;
export declare function getCSSFontDefinition(fontFamily: number): Promise<string>;
export declare function loadSceneFonts(elements: NonDeletedExcalidrawElement[]): Promise<FontFace[]>;
export declare function fetchFontFromVault(url: string | URL): Promise<ArrayBuffer | undefined>;
export declare function isTouchInPenMode(appState: AppState, event: React.PointerEvent<HTMLElement> | MouseEvent): boolean;
export declare function getSharedMermaidInstance(): Promise<MermaidToExcalidrawLibProps>;
export declare function loadMermaid(): Promise<MermaidToExcalidrawLibProps>;
export declare const intersectElementWithLine: (element: ExcalidrawElement, a: GlobalPoint, b: GlobalPoint, gap: number | undefined, elementsMap: ElementsMap) => GlobalPoint[] | undefined;
export declare const disableDoubleClickTextEditing: () => any;
export declare const getZoomStep: () => any;
export declare const getZoomMin: () => any;
export declare const getZoomMax: () => any;
export declare const runAction: (action: string) => void;
export declare const t2: (key: string) => string;
export declare const shouldDisableZoom: (appState: AppState) => boolean;
export declare const isFullPanelMode: (app: AppClassProperties) => boolean;
export declare const isContextMenuDisabled: () => boolean;
export declare const refreshAllArrows: (scene: Scene, store: Store) => void;
interface KeyBlocker {
    isBlockingKeys(): boolean;
    close(): void;
}
/**
   * Attaches an inline link suggester to the specified input element.
   * @param inputEl The HTML input element to attach the suggester to.
   * @param widthWrapper Optional HTML element to wrap the width of suggester element.
   * @param containerEl Optional container element used as collision boundary.
   * @param surpessPlaceholder Whether to suppress the placeholder text. Defaults to true.
   * @returns A KeyBlocker instance for managing keyboard input.
   */
export declare const attachInlineLinkSuggester: (inputEl: HTMLInputElement | HTMLTextAreaElement, widthWrapper?: HTMLElement, container?: HTMLDivElement | null, surpessPlaceholder?: boolean) => KeyBlocker;
export declare const syncElementLinkWithText: () => boolean;
export {};
