import type { ComponentDef, ComponentMap } from "./contracts";
export declare class InertiaViewComponentManager {
    /**
     * Map of resolved components.
     */
    resolvedComponents: Record<string, ComponentDef>;
    /**
     * Registers view components for given namespace.
     */
    addComponents<T>(components: Record<string, ComponentDef>, namespace?: string): InertiaViewComponentManager;
    getResolvedComponents(): Record<string, ComponentDef>;
    /**
     * Retrieve registered component with given name.
     */
    getComponentWithName(name: string): ComponentDef;
    /**
     * Resolve component name from file name.
     *
     * @param fileName
     * @param prefix
     */
    resolveComponentName(fileName: string, prefix?: string | null): string;
}
declare const ComponentManager: InertiaViewComponentManager;
export { ComponentManager };
export declare function registerComponents(components: ComponentMap | Array<ComponentMap>, namespace?: string): void;
export declare function resolveNamedComponent(name: string): ComponentDef;
