import type { APIEndpoints, NavigationMenuWithItems } from './types';
import type { ApiClient } from './request';
export { collectCartLinkStats, collectPortalLinkStats, type CartLinkValidationItem, type CartLinkValidationStats, type NavigationMenuValidationItem, type PortalLinkValidationItem, type PortalLinkValidationStats, } from './navigationMenuValidation';
export { isInternalLink, isPageLink, isEntryLink, resolveNavigationLinkInput, } from './navigation/linkResolver';
export { toRoutableLinkPayload } from './navigation/routableLink';
export { linkPayloadToValue, linkValueToPayload, toInternalLinkValue, toPersistableNavigationLinkValue, } from './navigation/linkValue';
export type { PersistableNavigationLinkError, PersistableNavigationLinkResult, PersistableNavigationLinkValue, } from './navigation/linkValue';
export type { CartLinkLabelConfig, CartLinkPayload, EntryLinkPayload, InternalLinkRoutablePayload, LinkResolutionOptions, LinkPayload, NavigationLinkInput, NavigationUrlType, PageLinkPayload, PortalLinkPayload, ResolvedNavigationLink, RoutableContentItem, SitemapRouteItem, } from './navigation/types';
export { matchNavigationItems } from './navigation/matcher';
export type { ItemMatch, MatchResult } from './navigation/matcher';
export type { EntryNavLinkInfo, NavigationItemForMatching, NavigationItemInput, NavigationReferenceMaps, PageNavLinkInfo, } from './navigation/types';
type GetMenusResponse = NonNullable<APIEndpoints['getNavigationMenus']['response']>;
type CreateMenuBody = NonNullable<APIEndpoints['createNavigationMenu']['body']>;
type UpdateMenuBody = NonNullable<APIEndpoints['updateNavigationMenu']['body']>;
type CreateItemBody = NonNullable<APIEndpoints['createNavigationItem']['body']>;
type UpdateItemBody = NonNullable<APIEndpoints['updateNavigationItem']['body']>;
type ReorderItemsBody = NonNullable<APIEndpoints['reorderNavigationItems']['body']>;
export declare function getNavigationMenus(apiClient: ApiClient, { siteId, options }: {
    siteId: string;
    options?: RequestInit;
}): Promise<GetMenusResponse>;
export declare function createNavigationMenu(apiClient: ApiClient, { siteId, name, isPrimary, position, options, }: {
    siteId: string;
} & CreateMenuBody & {
    options?: RequestInit;
}): Promise<{
    menus: NavigationMenuWithItems[];
}>;
export declare function updateNavigationMenu(apiClient: ApiClient, { siteId, menuId, name, isPrimary, position, options, }: {
    siteId: string;
    menuId: string;
} & UpdateMenuBody & {
    options?: RequestInit;
}): Promise<{
    menus: NavigationMenuWithItems[];
}>;
export declare function deleteNavigationMenu(apiClient: ApiClient, { siteId, menuId, options }: {
    siteId: string;
    menuId: string;
    options?: RequestInit;
}): Promise<{
    menus: NavigationMenuWithItems[];
}>;
export declare function createNavigationItem(apiClient: ApiClient, { siteId, menuId, label, type, link, parentId, orderIndex, isCta, options, }: {
    siteId: string;
    menuId: string;
} & CreateItemBody & {
    options?: RequestInit;
}): Promise<{
    menus: NavigationMenuWithItems[];
}>;
export declare function updateNavigationItem(apiClient: ApiClient, { siteId, menuId, itemId, label, type, link, parentId, orderIndex, isCta, options, }: {
    siteId: string;
    menuId: string;
    itemId: string;
} & UpdateItemBody & {
    options?: RequestInit;
}): Promise<{
    menus: NavigationMenuWithItems[];
}>;
export declare function deleteNavigationItem(apiClient: ApiClient, { siteId, menuId, itemId, options }: {
    siteId: string;
    menuId: string;
    itemId: string;
    options?: RequestInit;
}): Promise<{
    menus: NavigationMenuWithItems[];
}>;
export declare function reorderNavigationItems(apiClient: ApiClient, { siteId, menuId, items, options, }: {
    siteId: string;
    menuId: string;
} & ReorderItemsBody & {
    options?: RequestInit;
}): Promise<{
    menus: NavigationMenuWithItems[];
}>;
