/**
 * 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
     * @example "/api/diagnostics/diagnosticReportConfigurations/{id}"
     */
    apiEndpoint: string;
    /**
     * App name - used to derive session storage key
     * Session storage key will be: `${appName}:configIds`
     * @example "diagnosticreport" → "diagnosticreport:configIds"
     * @example "observations" → "observations:configIds"
     */
    appName: string;
    /**
     * Whether to enable debug logging
     * @default false
     */
    debug?: boolean;
}
/**
 * Return type for useMenuConfig hook
 */
export interface UseMenuConfigResult<TConfig = any> {
    /**
     * Configuration data fetched from API
     */
    config: TConfig | null;
    /**
     * Loading state
     */
    loading: boolean;
    /**
     * Error state
     */
    error: Error | null;
    /**
     * Manually refetch configuration
     */
    refetch: () => void;
}
//# sourceMappingURL=types.d.ts.map