/**
 * Generic types for menu-based configuration
 */
/**
 * Menu structure from navigation microfrontend
 */
export interface MenuData {
    categories?: Array<{
        subCategories?: Array<{
            items?: Array<{
                app?: {
                    id: string;
                    name?: string;
                };
                path?: string;
                shortcut?: string;
                parameters?: {
                    paramName?: string;
                    paramValue?: {
                        id: string;
                        [key: string]: any;
                    };
                };
                [key: string]: any;
            }>;
        }>;
    }>;
}
/**
 * Options for useMenuConfig hook
 */
export interface UseMenuConfigOptions {
    /**
     * Current route shortcut (from URL parameter)
     * @example "anamnesis", "epicrisis"
     */
    shortcut?: string;
    /**
     * API endpoint template to fetch configuration data.
     * Use {id} as placeholder for config ID.
     * If omitted the hook only resolves the parameter value and skips the API fetch.
     * @example "/api/diagnostics/diagnosticReportConfigurations/{id}"
     */
    apiEndpoint?: string;
    /**
     * App name - used to derive session storage key
     * Session storage key will be: `${appName}:parameters`
     * @example "diagnosticreport" → "diagnosticreport:parameters"
     */
    appName: string;
    /**
     * The key to read from the shortcut's parameter object in session storage.
     * @default "config"
     * @example "hubConfig" → reads shortcutParams.hubConfig instead of shortcutParams.config
     */
    paramKey?: string;
    /**
     * Whether to enable debug logging
     * @default false
     */
    debug?: boolean;
}
/**
 * Return type for useMenuConfig hook
 */
export interface UseMenuConfigResult<TConfig = any> {
    /**
     * The raw parameter value resolved from session storage (e.g. a UUID string).
     * Available even when apiEndpoint is omitted.
     */
    configId: string | undefined;
    /**
     * Configuration data fetched from API (only populated when apiEndpoint is provided)
     */
    config: TConfig | null;
    /**
     * Loading state
     */
    loading: boolean;
    /**
     * Error state
     */
    error: Error | null;
    /**
     * Manually refetch configuration
     */
    refetch: () => void;
}
//# sourceMappingURL=types.d.ts.map