import { ComponentType, PropsWithChildren, ReactNode, JSX } from 'react';
import { SignInPageProps } from '@backstage/core-plugin-api';
export declare const AppRoot: import("@backstage/frontend-plugin-api").ExtensionDefinition<{
    config: {};
    configInput: {};
    output: import("@backstage/frontend-plugin-api").ConfigurableExtensionDataRef<JSX.Element, "core.reactElement", {}>;
    inputs: {
        router: import("@backstage/frontend-plugin-api").ExtensionInput<import("@backstage/frontend-plugin-api").ConfigurableExtensionDataRef<ComponentType<{
            children?: ReactNode | undefined;
        }>, "app.router.wrapper", {}>, {
            singleton: true;
            optional: true;
        }>;
        signInPage: import("@backstage/frontend-plugin-api").ExtensionInput<import("@backstage/frontend-plugin-api").ConfigurableExtensionDataRef<ComponentType<SignInPageProps>, "core.sign-in-page.component", {}>, {
            singleton: true;
            optional: true;
        }>;
        children: import("@backstage/frontend-plugin-api").ExtensionInput<import("@backstage/frontend-plugin-api").ConfigurableExtensionDataRef<JSX.Element, "core.reactElement", {}>, {
            singleton: true;
            optional: false;
        }>;
        elements: import("@backstage/frontend-plugin-api").ExtensionInput<import("@backstage/frontend-plugin-api").ConfigurableExtensionDataRef<JSX.Element, "core.reactElement", {}>, {
            singleton: false;
            optional: false;
        }>;
        wrappers: import("@backstage/frontend-plugin-api").ExtensionInput<import("@backstage/frontend-plugin-api").ConfigurableExtensionDataRef<ComponentType<{
            children?: ReactNode | undefined;
        }>, "app.root.wrapper", {}>, {
            singleton: false;
            optional: false;
        }>;
    };
    params: never;
    kind: undefined;
    name: "root";
}>;
/**
 * Props for the {@link AppRouter} component.
 * @public
 */
export interface AppRouterProps {
    children?: ReactNode;
    SignInPageComponent?: ComponentType<SignInPageProps>;
    RouterComponent?: ComponentType<PropsWithChildren<{}>>;
    extraElements?: Array<JSX.Element>;
}
/**
 * App router and sign-in page wrapper.
 *
 * @remarks
 *
 * The AppRouter provides the routing context and renders the sign-in page.
 * Until the user has successfully signed in, this component will render
 * the sign-in page. Once the user has signed-in, it will instead render
 * the app, while providing routing and route tracking for the app.
 */
export declare function AppRouter(props: AppRouterProps): import("react/jsx-runtime").JSX.Element;
