import { PropsWithChildren, FC, ReactNode } from 'react';
import { routes } from './routes.js';
import * as react_jsx_runtime from 'react/jsx-runtime';

/**
 * Describes the host environment the UI is embedded in. Consumers of the
 * library pass this via AppInspectorContextProvider so the UI can adapt its
 * behavior (e.g. analytics reporting) to its deployment context.
 */
type DeploymentContainer = {
    extensionVersion: string;
    ideVersion: string;
    source: 'vscode';
} | {
    source: 'web';
};

interface AppInspectorContextProviderProps {
    /**
     * Describes the host container running AppInspector. Defaults to `{ source: 'web' }`
     * when omitted. VS Code consumers pass `{ source: 'vscode', ideVersion, extensionVersion }`.
     */
    deploymentContainer?: DeploymentContainer;
    /**
     * A component that renders a link.
     */
    linkComponent: FC<{
        children: ReactNode;
        to: string;
    }>;
    /**
     * The endpoint to LocalStack.
     */
    localstackEndpoint: string;
    /**
     * The prefix for the event studio routes.
     */
    routePrefix: string;
}
declare const AppInspectorContextProvider: (props: PropsWithChildren<AppInspectorContextProviderProps>) => react_jsx_runtime.JSX.Element;

type PagesMap = Record<keyof typeof routes, readonly [string, FC]>;
declare const pages: {
    readonly APP_INSPECTOR_SPANS_LIST: readonly ["spans", FC];
};

export { AppInspectorContextProvider, type DeploymentContainer, type PagesMap, pages };
