import { RouteLocationRaw, Router } from 'vue-router'; import { LocationRoutes, UpdateLocationOnRestore, UpdateLocationOnUpdate, UpdateLocationPitcherEvent } from '../sdk/interfaces'; import { RegisterLocation } from './useLocationManipulation'; export interface UseLocationAPI { app: string; isRoot: boolean; router: Router; urlMode: 'hash' | 'history'; sendToRoot: (body: UpdateLocationPitcherEvent) => Promise; } export default function useLocationAPI(params: UseLocationAPI): { broadcast: { unregister: (appName: string) => Promise; register: ({ child_app, parent_app, path }: RegisterLocation) => Promise; update: (routes: UpdateLocationOnUpdate["routes"]) => Promise; mount: () => Promise; mounted: () => Promise; restore: (routes: UpdateLocationOnRestore["routes"]) => Promise; restoreCompleted: (path: string, query: Record) => Promise; getRoutesRequest: () => Promise; getRoutesResponse: (app: string, routes: LocationRoutes) => Promise; }; internalRouter: { path: import('vue').ComputedRef; query: import('vue').ComputedRef; push: (to: RouteLocationRaw) => Promise; replace: (to: RouteLocationRaw) => Promise; }; globalRouter: { getPath: () => string; getSearch: () => string; getPathWithSearch: () => string; getSearchAsObject: () => { [k: string]: string; }; }; buildUrl: (url: string, query: Record) => string; };