import { type Request, type Response } from 'express';
import { type ExpressKit } from '@gravity-ui/expresskit';
import { type AppLayoutConfig } from './render-layout';
import { type VcsApi } from '../shared/vcs';
import { type CustomVCSType, type VCSSettings } from '../shared/ui-settings';
export interface ServerFactory {
    getExtraRootPages(): Array<string>;
    isLocalClusterId(cluster: string): boolean;
    getHomeRedirectedUrl(cluster: string | undefined, req: Request): Promise<string | undefined>;
    renderLayout(params: AppLayoutConfig, req: Request, res: Response): Promise<string>;
    createCustomVcsApi(type: CustomVCSType, vcs: Omit<VCSSettings, 'type'>, token?: string): VcsApi | undefined;
    getAuthHeaders(type: 'aiChat' | 'accessLogProd' | 'accessLogTest' | 'accountsUsageProd' | 'accountsUsageTest', req: Request): Record<string, string | undefined> | undefined;
}
export declare function rememberApp(v: ExpressKit): void;
/**
 * @deprecated use req.ctx.config instead of App().config
 */
export declare function getApp(): ExpressKit;
export declare function configureServerFactory(overrides: Partial<ServerFactory>): void;
declare const _default: ServerFactory;
export default _default;
