import { Ref } from 'vue'; import { LocationRoute, LocationRoutes, UpdateLocationPitcherEvent } from '../sdk/interfaces'; import { default as useLocationAPI } from './useLocationAPI'; interface UseLocationManipulation { routes: LocationRoutes; relations: { [key: string]: string; }; app: string; actionsQueue: Ref; } type LocationQuery = Record; export interface RegisterLocation { child_app: string; parent_app?: string; path?: string; query?: LocationQuery; } interface Route { path: string; query: LocationQuery; } export default function useLocationManipulation({ routes, relations, app, actionsQueue }: UseLocationManipulation): { isPathRestored: Ref; isAppMounted: import('vue').ComputedRef; isAppRestored: import('vue').ComputedRef; recoverRouteFromLocations: (rootApp: string) => Route; isSameRoute: (route1?: Route, route2?: Route) => boolean; isSameRouteAsStored: (internalRouter: ReturnType["internalRouter"]) => boolean; deleteRelation: (appName: string) => string[]; addActionToQueue: (body: UpdateLocationPitcherEvent) => void; registerLocation: ({ child_app, parent_app, path, query }: RegisterLocation) => void; createRoute: (params?: Partial) => LocationRoute; unregisterLocation: (appName: string) => void; }; export {};