import '../app.css'; import type { Component, Snippet } from 'svelte'; import type { DataProvider, AuthProvider, ResourceDefinition, ThemeMode, RouterProvider, ThemeConfig, MenuItem, TaskProvider } from '@svadmin/core'; import { QueryClient, type DefaultOptions } from '@tanstack/svelte-query'; import { type ComponentRegistry } from '../component-registry.svelte.js'; interface Props { dataProvider: DataProvider; authProvider?: AuthProvider; taskProvider?: TaskProvider; routerProvider?: RouterProvider; resources: ResourceDefinition[]; locale?: string; title?: string; defaultTheme?: ThemeMode; /** Theme configuration for dark-first mode, CSS overrides, etc. */ themeConfig?: ThemeConfig; dashboard?: Snippet; loginPage?: Snippet; /** Prefill and display credentials on the default login page, useful for demos/examples. */ loginDefaults?: { identifier?: string; password?: string; hint?: string; }; /** Override default components via DI */ components?: Partial; /** Resource-specific page overrides while keeping svadmin defaults as fallback. */ resourcePages?: Record; create?: Component<{ resourceName: string; mode?: 'create'; }>; edit?: Component<{ resourceName: string; mode?: 'edit'; id?: string | number; }>; show?: Component<{ resourceName: string; id?: string | number; }>; clone?: Component<{ resourceName: string; mode?: 'clone'; id?: string | number; }>; }>; /** Custom multi-level menu configuration */ menu?: MenuItem[]; /** External URL to the main application or workspace (renders a shortcut in the header) */ siteUrl?: string; /** Routing strategy for Sidebar links ('hash' | 'path' | 'auto') */ routeMode?: 'hash' | 'path' | 'auto'; /** Optional TanStack Query client override. */ queryClient?: QueryClient; /** Optional TanStack Query default options override when QueryClient is not supplied. */ queryClientDefaultOptions?: DefaultOptions; } declare const AdminApp: Component; type AdminApp = ReturnType; export default AdminApp;