/**
 * Icon family runtime resolver (Layer 1 Iconography axis).
 *
 * Reads the active `--icon-family` CSS variable from the document element and
 * dispatches a canonical icon name (kebab-case, matching lucide's vocabulary)
 * to the equivalent component in the active family. Subscribes to data-theme
 * attribute changes via MutationObserver so a theme switch re-renders icons
 * into the new family without a page reload.
 *
 * Canonical name = lucide name. Per-family alias tables resolve cross-family
 * naming differences (e.g. lucide's `search` is phosphor's `MagnifyingGlass`).
 * For names not mapped in the active family, falls back to lucide and logs a
 * console.warn — preserves semantic over family purity.
 *
 * See `docs/Almadar_Std_Variations.md` §2 and `themes/_contract.md`.
 */
import React from 'react';
import type { IconFamily as IconFamilyType } from '@almadar/core';
export type IconFamily = IconFamilyType;
/** Adapter props that EVERY family-specific icon component accepts at this layer. */
export interface RenderedIconProps {
    className?: string;
    strokeWidth?: number;
    size?: number;
    style?: React.CSSProperties;
}
/** Read --icon-family from <html> at runtime. Returns 'lucide' on SSR. */
export declare function getCurrentIconFamily(): IconFamily;
/** React hook: returns the active icon family, re-renders on theme switch. */
export declare function useIconFamily(): IconFamily;
/**
 * Dispatch a canonical icon name to the right family component.
 * Falls back to lucide (with console.warn) when the family has no mapping.
 */
export declare function resolveIconForFamily(name: string, family: IconFamily): React.ComponentType<RenderedIconProps>;
/**
 * Resolve a canonical icon name to a family-aware component. The returned
 * component re-renders the icon into the active family's library on theme
 * switch (via useIconFamily's MutationObserver subscription).
 */
export declare function useResolvedIcon(name: string): React.ComponentType<RenderedIconProps>;
