import React from "react"; import type { OverridableComponentName } from "@rebasepro/cms-types"; /** * Resolves a potentially overridden component. * * Resolution order: * 1. Collection-scoped override (highest priority) * 2. Global override * 3. Default component (fallback) * * Supports two override modes: * - **Eject** (default): The override component fully replaces the default. * - **Wrap** (`wrap: true`): The override component wraps the default. * The default is passed as `OriginalComponent` in props. * * @param name - The overridable component name (e.g. `"Entity.Form"`) * @param DefaultComponent - The built-in default component * @returns The resolved component — either the default, a full replacement, or a wrapper * * @example * ```tsx * import { useComponentOverride } from "@rebasepro/app"; * * function EntityFormWrapper(props: EntityFormProps) { * const ResolvedForm = useComponentOverride("Entity.Form", DefaultEntityForm); * return ; * } * ``` * * @group Hooks */ export declare function useComponentOverride

(name: OverridableComponentName, DefaultComponent: React.ComponentType

): React.ComponentType

;