/**
 * Component discovery for the CLI
 * Uses pre-generated manifests to provide component information
 */
export interface ComponentInfo {
    id?: string;
    name: string;
    componentName?: string;
    category: string;
    importPath: string;
    import?: string;
    description?: string;
    example?: string;
    props?: Record<string, unknown>;
    info?: string;
}
export interface GroupedComponentInfo {
    type: "group";
    id?: string;
    name: string;
    category: string;
    description: string;
    importPath: string;
    info?: string;
    components: Record<string, {
        name: string;
        componentName?: string;
        import: string;
        description?: string;
    }> | Array<{
        name: string;
        componentName?: string;
        import: string;
        description?: string;
    }>;
}
export declare function toKebabCase(str: string): string;
export declare function toPascalCase(str: string): string;
/**
 * Find the first existing path from a list of possible paths
 * @param resourceName Name of the resource for error messages
 * @param possiblePaths Array of paths to try in order
 * @param throwIfNotFound Whether to throw an error if no path is found (default: true)
 * @returns The first existing path, or null if not found and throwIfNotFound is false
 */
export declare function findExistingPath(resourceName: string, possiblePaths: string[], throwIfNotFound?: boolean): string | null;
export declare function loadDesignEngineer(): string;
/**
 * Discover all components from pre-generated manifest
 */
export declare function discoverAllComponents(): ComponentInfo[];
/**
 * Check if a name refers to a grouped component package
 */
export declare function isGroupedComponent(name: string): boolean;
/**
 * Load all component information from the manifest file.
 * This is more efficient than calling getComponentInfo repeatedly.
 */
export declare function loadAllComponentInfo(options?: {
    verbose?: boolean;
}): Record<string, ComponentInfo | GroupedComponentInfo>;
/**
 * Get detailed information about a specific component
 */
export declare function getComponentInfo(componentName: string, options?: {
    verbose?: boolean;
}): ComponentInfo | GroupedComponentInfo | null;
//# sourceMappingURL=component-discovery.d.ts.map