import type { HttpMethod } from '@scalar/helpers/http/http-methods'; import type { ClientPlugin } from '@scalar/oas-utils/helpers'; import type { Theme } from '@scalar/themes'; import type { WorkspaceStore } from '@scalar/workspace-store/client'; import type { WorkspaceEventBus } from '@scalar/workspace-store/events'; import type { XScalarEnvironment } from '@scalar/workspace-store/schemas/extensions/document/x-scalar-environments'; import type { WorkspaceDocument } from '@scalar/workspace-store/schemas/workspace'; import type { MergedSecuritySchemes } from '../../../../v2/blocks/scalar-auth-selector-block/helpers/merge-security.js'; import type { ImportDocumentFromRegistry } from '../../../../v2/types/configuration'; import type { ClientLayout } from '../../../../v2/types/layout'; /** These props are provided at the route level */ export type RouteProps = { /** The slug of the currently selected document in the workspace */ documentSlug: string; /** The currently active document */ document: WorkspaceDocument | null; /** The workspace event bus */ eventBus: WorkspaceEventBus; /** The layout of the client */ layout: ClientLayout; /** The API path currently selected (e.g. "/users/{id}") */ path?: string; /** The HTTP method for the currently selected API path (e.g. GET, POST) */ method?: HttpMethod; /** The name of the currently selected example (for examples within an endpoint) */ exampleName?: string; /** The currently active environment */ environment: XScalarEnvironment; /** The merged security schemes */ securitySchemes: MergedSecuritySchemes; /** The workspace store */ workspaceStore: WorkspaceStore; /** The currently active workspace */ activeWorkspace: { id: string; label: string; }; /** Client plugins */ plugins: ClientPlugin[]; /** Custom themes available to the team */ customThemes?: Theme[]; /** The currently selected theme styles string */ currentTheme?: string; /** Whether the current color mode is dark */ isDarkMode?: boolean; /** * Fetches the full document from registry by meta. When provided, registry meta takes priority * over x-scalar-original-source-url when syncing. Returns the document as a plain object. */ fetchRegistryDocument?: ImportDocumentFromRegistry; }; /** When in the collections pages */ export type CollectionProps = RouteProps & ({ collectionType: 'document' | 'operation'; document: WorkspaceDocument; } | { collectionType: 'workspace'; document: null; }); export type ScalarClientAppRouteParams = 'namespace' | 'workspaceSlug' | 'documentSlug' | 'pathEncoded' | 'method' | 'exampleName'; /** Routes for the API client app and web, the same as modal + workspace routes */ export declare const ROUTES: ({ path: string; children: ({ path: string; children: ({ path: string; children: ({ name: string; path: string; component: import("vue").DefineComponent & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>; redirect?: undefined; children?: undefined; } | { name: string; path: string; component: import("vue").DefineComponent & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>; redirect: { name: string; }; children: { name: string; path: string; component: import("vue").DefineComponent<(RouteProps & { collectionType: "document" | "operation"; document: WorkspaceDocument; }) | (RouteProps & { collectionType: "workspace"; document: null; }), {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<(RouteProps & { collectionType: "document" | "operation"; document: WorkspaceDocument; }) | (RouteProps & { collectionType: "workspace"; document: null; })> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>; }[]; })[]; name?: undefined; component?: undefined; } | { name: string; path: string; component: import("vue").DefineComponent & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>; children: ({ name: string; path: string; redirect: { name: string; }; component?: undefined; } | { name: string; path: string; component: import("vue").DefineComponent<(RouteProps & { collectionType: "document" | "operation"; document: WorkspaceDocument; }) | (RouteProps & { collectionType: "workspace"; document: null; }), {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<(RouteProps & { collectionType: "document" | "operation"; document: WorkspaceDocument; }) | (RouteProps & { collectionType: "workspace"; document: null; })> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>; redirect?: undefined; })[]; })[]; name?: undefined; component?: undefined; } | { name: string; path: string; component: import("vue").DefineComponent & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>; children: { name: string; path: string; component: import("vue").DefineComponent<(RouteProps & { collectionType: "document" | "operation"; document: WorkspaceDocument; }) | (RouteProps & { collectionType: "workspace"; document: null; }), {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<(RouteProps & { collectionType: "document" | "operation"; document: WorkspaceDocument; }) | (RouteProps & { collectionType: "workspace"; document: null; })> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>; }[]; })[]; redirect?: undefined; } | { path: string; redirect: () => string; children?: undefined; })[]; //# sourceMappingURL=routes.d.ts.map