///
import { ClientLoaderConfiguration, ServerLoaderConfiguration } from "./types.js";
/**
* Get the file path of the file that called this function.
* Copied from @Bikky/Path because if we include it here it won't import from the right place once the loader's setup.
*/
export declare function getCallerFilepath(): string;
export declare function InitialiseServer(config: ServerLoaderConfiguration): void;
declare namespace ExpressLike {
interface NextFunction {
(err?: any): void;
/**
* "Break-out" of a router by calling {next('router')};
* @see {https://expressjs.com/en/guide/using-middleware.html#middleware.router}
*/
(deferToNext: "router"): void;
/**
* "Break-out" of a route by calling {next('route')};
* @see {https://expressjs.com/en/guide/using-middleware.html#middleware.application}
*/
(deferToNext: "route"): void;
}
interface Router {
use: (cb: (req: any, res: any, next: NextFunction) => any) => void;
}
}
declare namespace ElectronLike {
interface Protocol {
handle: (scheme: string, handler: (request: any) => any | Promise) => void;
}
}
export type FileServer = {
express: ExpressLike.Router;
} | {
electron: ElectronLike.Protocol;
electronResponseClass: typeof Response;
} | {
express: ExpressLike.Router;
electron: ElectronLike.Protocol;
electronResponseClass: typeof Response;
};
export declare function InitialiseClient(config: ClientLoaderConfiguration, server?: FileServer): Promise;
export {};