import type { ChatRuntime } from '../../../contexts/chat-runtime-context'; /** Minimal mouse-event surface — structural so chip buttons / tiles can call it * without casting `React.MouseEvent`. */ export interface NavClickEvent { preventDefault(): void; button?: number; metaKey?: boolean; ctrlKey?: boolean; shiftKey?: boolean; altKey?: boolean; } export interface ExecuteNavigationClickArgs { event: NavClickEvent; runtime: ChatRuntime | null | undefined; href: string; path?: string | null; targetPlatform?: string | null; /** Host router fallback for same-origin soft-nav when the runtime doesn't wire * `navigation.navigate` — pass `useRouter().push`. Without it, falls back to a * full-page `window.location.assign`. */ fallbackNavigate?: (path: string) => void; } export interface ExecuteNavigationImperativeArgs { runtime: ChatRuntime | null | undefined; href: string; targetPlatform?: string | null; fallbackNavigate?: (path: string) => void; } /** * Click-handler form. Returns `true` when it took action (called * `preventDefault`); `false` for modifier / non-primary clicks the browser * should handle natively. Spread the result into your anchor's `onClick`. */ export declare function executeNavigation({ event, runtime, href, path, targetPlatform, fallbackNavigate, }: ExecuteNavigationClickArgs): boolean; /** * Imperative form — for buttons, list-row onClicks, and post-action redirects * that aren't anchor clicks. Same decision tree, no event/modifier handling. */ export declare function executeNavigationImperative({ runtime, href, targetPlatform, fallbackNavigate, }: ExecuteNavigationImperativeArgs): void; //# sourceMappingURL=execute-navigation.d.ts.map