import { Backend, ExtendedHttpServer } from '@backstage/backend-app-api';
import { BackendFeature, ExtensionPoint } from '@backstage/backend-plugin-api';
/** @public */
export interface TestBackendOptions<TExtensionPoints extends any[]> {
    extensionPoints?: readonly [
        ...{
            [index in keyof TExtensionPoints]: [
                ExtensionPoint<TExtensionPoints[index]>,
                Partial<TExtensionPoints[index]>
            ];
        }
    ];
    features?: Array<BackendFeature | (() => BackendFeature) | Promise<{
        default: BackendFeature | (() => BackendFeature);
    }>>;
}
/** @public */
export interface TestBackend extends Backend {
    /**
     * Provides access to the underling HTTP server for use with utilities
     * such as `supertest`.
     *
     * If the root http router service has been replaced, this will throw an error.
     */
    readonly server: ExtendedHttpServer;
}
export declare const defaultServiceFactories: (import("@backstage/backend-plugin-api").ServiceFactory<import("@backstage/backend-plugin-api").AuthService, "plugin"> | import("@backstage/backend-plugin-api").ServiceFactory<import("@backstage/backend-plugin-api").CacheService, "plugin"> | import("@backstage/backend-plugin-api").ServiceFactory<import("@backstage/backend-plugin-api").RootConfigService, "root"> | import("@backstage/backend-plugin-api").ServiceFactory<import("@backstage/backend-plugin-api").DatabaseService, "plugin"> | import("@backstage/backend-plugin-api").ServiceFactory<import("@backstage/backend-plugin-api").HttpAuthService, "plugin"> | import("@backstage/backend-plugin-api").ServiceFactory<import("@backstage/backend-plugin-api").HttpRouterService, "plugin"> | import("@backstage/backend-plugin-api").ServiceFactory<import("@backstage/backend-plugin-api").IdentityService, "plugin"> | import("@backstage/backend-plugin-api").ServiceFactory<import("@backstage/backend-plugin-api").LifecycleService, "plugin"> | import("@backstage/backend-plugin-api").ServiceFactory<import("@backstage/backend-plugin-api").LoggerService, "plugin"> | import("@backstage/backend-plugin-api").ServiceFactory<import("@backstage/backend-plugin-api").PermissionsService, "plugin"> | import("@backstage/backend-plugin-api").ServiceFactory<import("@backstage/backend-plugin-api").RootLifecycleService, "root"> | import("@backstage/backend-plugin-api").ServiceFactory<import("@backstage/backend-plugin-api").LoggerService, "root"> | import("@backstage/backend-plugin-api").ServiceFactory<import("@backstage/backend-plugin-api").SchedulerService, "plugin"> | import("@backstage/backend-plugin-api").ServiceFactory<import("@backstage/backend-plugin-api").TokenManagerService, "plugin"> | import("@backstage/backend-plugin-api").ServiceFactory<import("@backstage/backend-plugin-api").UserInfoService, "plugin"> | import("@backstage/backend-plugin-api").ServiceFactory<import("@backstage/backend-plugin-api").UrlReaderService, "plugin">)[];
/** @public */
export declare function startTestBackend<TExtensionPoints extends any[]>(options: TestBackendOptions<TExtensionPoints>): Promise<TestBackend>;
