import * as react_jsx_runtime from 'react/jsx-runtime';
import { ReactNode } from 'react';
import { DavepiUiConfig, ResourceConfig } from '@davepi/ui-core';
/**
* App-wide configuration context for davepi-ui.
*
* Two layers compose:
* 1. App-wide config from `davepi-ui.config.ts` — branding, base URL,
* sidebar categories, widget overrides, default per-resource shape.
* 2. Per-resource override files (the consumer's `src/resources/*.ts(x)`
* auto-discovered via Vite glob in the app shell) — passed in via
* `resourceOverrides` keyed by short path.
*
* `useResourceConfig(path)` returns the deep-merged effective config for
* one resource — caller consumes it directly. Override merge order
* follows the plan: built-in default ← describe hint ← app-wide config
* ← per-resource override file ← inline JSX prop.
*
* @example
*
*
*
*/
interface DavepiConfigContextValue {
config: DavepiUiConfig;
/** Per-resource overrides keyed by short path (consumer-supplied files). */
resourceOverrides: Record;
/** Merged effective config for a single resource. */
resolveResource(path: string): ResourceConfig;
}
interface ConfigProviderProps {
config: DavepiUiConfig;
resourceOverrides?: Record;
children: ReactNode;
}
declare function ConfigProvider({ config, resourceOverrides, children, }: ConfigProviderProps): react_jsx_runtime.JSX.Element;
/** Access the raw app-wide config + override map. */
declare function useDavepiConfig(): DavepiConfigContextValue;
/** Effective merged config for one resource. */
declare function useResourceConfig(path: string): ResourceConfig;
export { ConfigProvider, type ConfigProviderProps, type DavepiConfigContextValue, useDavepiConfig, useResourceConfig };