import { InjectionKey } from 'vue';
import { RouteComponent, RouteLocationRaw, RouteRecordRaw } from 'vue-router';
import { createWorkspaceRoutes } from '../router/routes';
export { createWorkspaceRoutes };
export type Route = Exclude<RouteLocationRaw, string>;
type WorkspaceRoutes = ReturnType<typeof createWorkspaceRoutes>;
type WorkspaceRouteKey = keyof WorkspaceRoutes;
type WorkspaceRoute = ReturnType<WorkspaceRoutes[WorkspaceRouteKey]>;
export type DeprecatedNamedRoutes = 'workspace.flow-runs' | 'workspace.flow-runs.flow-run' | 'workspace.flow-runs.task-run';
export type WorkspaceNamedRoute = WorkspaceRoute['name'] | DeprecatedNamedRoutes;
type WorkspaceRouteRecordParent = {
    name?: WorkspaceNamedRoute;
    children: WorkspaceRouteRecord[];
};
type WorkspaceRouteRecordChild = {
    name: WorkspaceNamedRoute;
};
type WorkspaceRouteRecord = Omit<RouteRecordRaw, 'name' | 'children'> & WorkspaceRouteRecordParent | WorkspaceRouteRecordChild;
export declare const workspaceRoutesKey: InjectionKey<WorkspaceRoutes>;
type WorkspaceComponent = () => Promise<RouteComponent>;
type WorkspaceRouteComponents = Record<WorkspaceRouteKey, WorkspaceComponent>;
export declare function createWorkspaceRouteRecords(components: Partial<WorkspaceRouteComponents>): WorkspaceRouteRecord[];
