import type { Ref } from "vue"; import type { TLogViewHandle, TLogViewLinkActivatePayload, TLogViewLinkClickPayload } from "../components/TLogView.js"; import type { TLogLinkPanelItem } from "../components/TLogLinksPanel.js"; import type { TLogViewPlugin } from "./tlog-plugins.js"; export type TLogLinkActionSource = "click" | "keyboard" | "programmatic" | "panel"; export type TLogLinkAction = Readonly<{ href: string; text: string; source: TLogLinkActionSource; absoluteLineIndex: number; index: number; startCell: number; endCell: number; }>; export type UseTLogLinkControllerOptions = Readonly<{ onAction?: (action: TLogLinkAction) => void; plugins?: readonly TLogViewPlugin[]; }>; export declare function useTLogLinkController(logView: Ref, options?: UseTLogLinkControllerOptions): { visibleLinks: Ref; activeIndex: Ref; refresh: () => void; focusVisibleLink: (visibleIndex: number) => boolean; focusNextLink: () => boolean; focusPreviousLink: () => boolean; clearFocus: () => void; activateVisibleLink: (visibleIndex: number) => boolean; activateFocusedLink: () => boolean; handleLinkClick: (payload: TLogViewLinkClickPayload) => void; handleLinkActivate: (payload: TLogViewLinkActivatePayload) => void; };