/**
 * Shared Navigation Link Resolution
 *
 * Provides unified link resolution for navigation items across the codebase.
 * Used by both ManagementDb (push path) and SDK sync (scaffolding path).
 */
import type { LinkPayload, InternalLinkRoutablePayload, NavigationLinkInput } from './types';
import type { PageNavLinkInfo, EntryNavLinkInfo, NavigationUrlType, ResolvedNavigationLink, LinkResolutionOptions } from './types';
export type { NavigationUrlType, ResolvedNavigationLink, LinkResolutionOptions };
/**
 * Type guard for internal links.
 * Checks if a link payload is an internal link with entityId and entityType.
 */
export declare function isInternalLink(link: LinkPayload | null | undefined): link is InternalLinkRoutablePayload;
/**
 * Narrow internal link to page type.
 */
export declare function isPageLink(link: InternalLinkRoutablePayload): boolean;
/**
 * Narrow internal link to content/entry type.
 */
export declare function isEntryLink(link: InternalLinkRoutablePayload): boolean;
/**
 * Resolve a navigation link input to URL type and link payload.
 *
 * Supports identifier-based page/entry links and validates them against routable
 * lookup maps before persisting.
 *
 * @param link - The navigation link input from SDK config or API
 * @param options - Resolution options (isDropdown flag)
 * @param pageMap - Map of page identifier -> PageNavLinkInfo
 * @param entryMap - Map of `contentType:identifier` -> EntryNavLinkInfo
 * @returns Resolved link with urlType, url payload, and any error
 */
export declare function resolveNavigationLinkInput(link: NavigationLinkInput | undefined, options: LinkResolutionOptions, pageMap: Map<string, PageNavLinkInfo>, entryMap: Map<string, EntryNavLinkInfo>): ResolvedNavigationLink;
