import { FrontendFeature } from '@backstage/frontend-app-api';
import { RenderResult } from '@testing-library/react';
import { JsonObject } from '@backstage/types';
import { ExtensionDefinition, RouteRef } from '@backstage/frontend-plugin-api';
/**
 * Options to customize the behavior of the test app.
 * @public
 */
export type TestAppOptions = {
    /**
     * An object of paths to mount route ref on, with the key being the path and the value
     * being the RouteRef that the path will be bound to. This allows the route refs to be
     * used by `useRouteRef` in the rendered elements.
     *
     * @example
     * ```ts
     * renderInTestApp(<MyComponent />, {
     *   mountedRoutes: {
     *     '/my-path': myRouteRef,
     *   }
     * })
     * // ...
     * const link = useRouteRef(myRouteRef)
     * ```
     */
    mountedRoutes?: {
        [path: string]: RouteRef;
    };
    /**
     * Additional configuration passed to the app when rendering elements inside it.
     */
    config?: JsonObject;
    /**
     * Additional extensions to add to the test app.
     */
    extensions?: ExtensionDefinition<any>[];
    /**
     * Additional features to add to the test app.
     */
    features?: FrontendFeature[];
    /**
     * Initial route entries to use for the router.
     */
    initialRouteEntries?: string[];
};
/**
 * @public
 * Renders the given element in a test app, for use in unit tests.
 */
export declare function renderInTestApp(element: JSX.Element, options?: TestAppOptions): RenderResult;
