import type { ComponentType } from "react";
import { DASHBOARD_TAB_PLUGINS } from "./dashboardTabDefinitions";
type Plugin = (typeof DASHBOARD_TAB_PLUGINS)[number];
type TabContentOf<P> = P extends {
    Tab: ComponentType<{
        content: infer C;
    }>;
} ? C : never;
export type DashboardNavItemId = Plugin["id"];
export type ContentByNavId = {
    [K in Plugin["id"]]: TabContentOf<Extract<Plugin, {
        id: K;
    }>>;
};
export declare const DASHBOARD_TAB_NAV_IDS: readonly DashboardNavItemId[];
export type DashboardContentFetchers = {
    [K in DashboardNavItemId]: (signal: AbortSignal) => Promise<ContentByNavId[K]>;
};
export type DashboardTabContentLoadErrorInfo = {
    navItemId: DashboardNavItemId;
    error: Error;
};
export declare function isDashboardNavItemId(id: string): id is DashboardNavItemId;
export {};
