///
import type { REDOCLY_TEAMS_RBAC } from '../constants';
import type { RbacScopeItems, SeoConfig } from '../../server/config/schema';
import type { MdOptions } from '../../server/plugins/markdown/types';
import type { LayoutVariant } from '@redocly/theme';
export type ResolvedNavLinkItem = {
type: 'link';
fsPath?: string;
metadata?: Record;
link: string;
label: string;
labelTranslationKey?: string;
items?: ResolvedNavItem[];
sidebar?: ResolvedNavItem[];
external?: boolean;
target?: '_self' | '_blank';
version?: string;
isDefault?: boolean;
versionFolderId?: string;
httpVerb?: string;
separatorLine?: boolean;
routeSlug?: string;
active?: boolean;
icon?: string;
srcSet?: string;
[REDOCLY_TEAMS_RBAC]?: RbacScopeItems;
linkedSidebars?: string[];
};
export type ResolvedNavGroupItem = {
type: 'group';
fsPath?: string;
metadata?: Record;
link?: string;
label?: string;
labelTranslationKey?: string;
items?: ResolvedNavItem[];
sidebar?: ResolvedNavItem[];
external?: boolean;
target?: '_self' | '_blank';
expanded?: string;
selectFirstItemOnExpand?: boolean;
version?: string;
isDefault?: boolean;
versionFolderId?: string;
menuStyle?: MenuStyle;
separatorLine?: boolean;
routeSlug?: string;
active?: boolean;
icon?: string;
srcSet?: string;
[REDOCLY_TEAMS_RBAC]?: RbacScopeItems;
linkedSidebars?: string[];
};
export type ResolvedNavItem = ResolvedNavLinkItem | ResolvedNavGroupItem | {
type: 'separator';
fsPath?: never;
metadata?: Record;
label?: string;
labelTranslationKey?: string;
routeSlug?: never;
version?: string;
isDefault?: boolean;
versionFolderId?: string;
separatorLine?: boolean;
linePosition?: 'top' | 'bottom';
link?: undefined;
items?: ResolvedNavItem[];
sidebar?: ResolvedNavItem[];
linkedSidebars?: string[];
icon?: string;
srcSet?: string;
[REDOCLY_TEAMS_RBAC]?: RbacScopeItems;
} | {
type: 'error';
fsPath?: never;
version?: string;
isDefault?: boolean;
versionFolderId?: string;
metadata?: Record;
routeSlug?: never;
label: string;
link?: undefined;
items?: ResolvedNavItem[];
sidebar?: ResolvedNavItem[];
linkedSidebars?: string[];
[REDOCLY_TEAMS_RBAC]?: RbacScopeItems;
};
export type ResolvedNavItemWithLink = (ResolvedNavLinkItem | ResolvedNavGroupItem) & {
link: string;
};
export type ResolvedSidebar = {
relatedNavbarItem?: Breadcrumb;
items: ResolvedNavItem[];
};
export interface PageProps {
metadata?: Record;
seo?: SeoConfig;
frontmatter?: PageProps & {
theme?: any;
};
disableAutoScroll?: boolean;
lastModified?: string | null;
[k: string]: unknown;
dynamicMarkdocComponents?: string[];
markdown?: MdOptions;
openapiOptions?: OpenAPIOptions;
definitionId?: string;
variables?: {
rbac?: {
teams: string[];
};
};
}
export interface PageStaticData {
props?: PageProps;
[k: string]: unknown;
}
export type UserData = {
isAuthenticated: boolean;
name: string;
picture: string;
logoutDisabled?: boolean;
};
export interface PageData {
templateId: string;
redirectTo?: string;
sharedDataIds: Record;
props: PageProps;
versions?: Version[];
userData: UserData;
}
export interface CachedPageData extends PageData {
Template: React.ComponentType>;
}
export interface ResolvedPageData extends CachedPageData {
sharedData: Record;
}
export declare enum MenuStyle {
Drilldown = "drilldown"
}
export type NavItem = {
page?: string;
directory?: string;
group?: string;
groupTranslationKey?: string;
label?: string;
labelTranslationKey?: string;
href?: never;
items?: NavItem[];
separator?: string;
separatorTranslationKey?: string;
separatorLine?: boolean;
linePosition?: 'top' | 'bottom';
version?: string;
menuStyle?: MenuStyle;
external?: boolean;
target?: '_self' | '_blank';
expanded?: boolean | 'always';
selectFirstItemOnExpand?: boolean;
flatten?: boolean;
icon?: string | {
srcSet: string;
};
rbac?: RbacScopeItems;
linkedSidebars?: string[];
$ref?: string;
disconnect?: boolean;
};
export interface LogoConfig {
image?: string;
altText?: string;
link?: string;
favicon?: string;
}
export type Version = {
version: string;
label: string;
link: string;
default: boolean;
active: boolean;
folderId: string;
[REDOCLY_TEAMS_RBAC]?: RbacScopeItems;
};
export type VersionConfigItem = {
version: string;
name?: string;
};
export type VersionsConfigType = {
versions: VersionConfigItem[];
default?: string;
};
export type VersionedFolderConfig = {
versionedFiles: Map>;
defaultVersion?: string;
versions: VersionConfigItem[];
hasVersionsConfig?: boolean;
};
export type NavGroup = ResolvedNavItem[] | undefined | string | boolean | number;
export type NavGroupRecord = Record;
export type ResolvedConfigLinks = NavGroup | NavGroupRecord;
export type RawNavConfigItem = NavItem | NavItem[] | string | undefined | boolean | number;
export type RawNavConfig = RawNavConfigItem | Record;
export type OpenAPIOptions = {
showRightPanelToggle?: boolean;
layout?: LayoutVariant;
collapsedSidebar?: boolean;
};
export type Breadcrumb = {
label: string;
link?: string;
};
//# sourceMappingURL=nav.d.ts.map