import type { ComponentEntry, ComponentsIndex, GlobalIndex, IconEntry, IconsIndex } from './types.js';
/**
 * Resolve the path to the MCP data directory
 * When compiled: Server is at dist/libs/core/src/bin/mcp-server/
 * When compiled: MCP data is at dist/libs/core/src/generated/mcp/
 * @returns Absolute path to MCP data directory
 */
export declare function getMcpDataPath(): string;
/**
 * Read the package version from package.json at runtime
 * @returns Package version string or default version
 */
export declare function getPackageVersion(): Promise<string>;
/**
 * Load the components index
 * @returns Components index or null if failed
 */
export declare function loadComponentsIndex(): Promise<ComponentsIndex | null>;
/**
 * Load the icons index
 * @returns Icons index or null if failed
 */
export declare function loadIconsIndex(): Promise<IconsIndex | null>;
/**
 * Load the global index
 * @returns Global index or null if failed
 */
export declare function loadGlobalIndex(): Promise<GlobalIndex | null>;
/**
 * Normalize component name for matching
 * Handles both 'gds-button' and 'button' formats
 * @param name - Component name to normalize
 * @returns Normalized component name with gds- prefix
 *
 * @example
 * normalizeComponentName('button') // => 'gds-button'
 * normalizeComponentName('gds-button') // => 'gds-button'
 * normalizeComponentName('icon-arrow') // => 'gds-icon-arrow'
 */
export declare function normalizeComponentName(name: string): string;
/**
 * Find a component by name with flexible matching
 * @param name - Component name to search for
 * @param components - Array of component entries
 * @returns Matching component or null if not found
 *
 * @example
 * findComponent('button', components) // Finds gds-button
 * findComponent('gds-button', components) // Exact match
 */
export declare function findComponent(name: string, components: ComponentEntry[]): ComponentEntry | null;
/**
 * Find an icon by name with flexible matching
 * @param name - Icon name to search for
 * @param icons - Array of icon entries
 * @returns Matching icon or null if not found
 *
 * @example
 * findIcon('arrow', icons) // Finds gds-icon-arrow
 * findIcon('icon-arrow', icons) // Finds gds-icon-arrow
 */
export declare function findIcon(name: string, icons: IconEntry[]): IconEntry | null;
/**
 * Read a markdown file from the MCP data directory
 * @param relativePath - Path relative to MCP data directory
 * @returns File contents or null if failed
 *
 * @example
 * readMcpFile('button/api.md')
 * readMcpFile('guides/angular.md')
 */
export declare function readMcpFile(relativePath: string): Promise<string | null>;
/**
 * Check if a file exists in the MCP data directory
 * @param relativePath - Path relative to MCP data directory
 * @returns True if file exists, false otherwise
 */
export declare function fileExists(relativePath: string): Promise<boolean>;
/**
 * Build a resource URI for a component/icon documentation file
 * @param category - Resource category
 * @param name - Component/icon/guide name
 * @param docType - Optional documentation type
 * @returns Resource URI
 *
 * @example
 * buildResourceUri('components', 'button', 'api') // => 'green://components/button/api'
 * buildResourceUri('guides', 'angular') // => 'green://guides/angular'
 */
export declare function buildResourceUri(category: 'components' | 'icons' | 'guides' | 'concepts', name: string, docType?: string): string;
/**
 * Parse a resource URI into its components
 * @param uri - Resource URI to parse
 * @returns Parsed URI components or null if invalid
 *
 * @example
 * parseResourceUri('green://components/button/api')
 * // => { category: 'components', name: 'button', docType: 'api' }
 */
export declare function parseResourceUri(uri: string): {
    category: string;
    name: string;
    docType?: string;
} | null;
