import { FabRequestResponder, PluginMetadata, FabFileMetadata, FabMetadata, FabRequestResponderWithParams, FabCache, FABServerContext, PluginArgs, ResponseInterceptor } from '@fab/core'; export declare enum Priority { LAST = 0, LATER = 1, MIDDLE = 2, EARLY = 3, FIRST = 4 } export declare type FabPluginRuntime = (Runtime: FABRuntime, args: PluginArgs) => void; export declare type RuntimeImports = Array<{ plugin: FabPluginRuntime; args: PluginArgs; }>; export declare class FABRouter { private pipeline; constructor(); getPipeline(): FabRequestResponder[]; addToPipeline(responder: FabRequestResponder, priority?: Priority): void; on(route: string, responder: FabRequestResponderWithParams, priority?: Priority): void; onAll(responder: FabRequestResponder, priority?: Priority): void; interceptResponse(interceptor: ResponseInterceptor, priority?: Priority): void; } export declare class FABRuntime { Metadata: T; FileMetadata: FabFileMetadata; Router: FABRouter; Cache: FabCache; ServerContext: FABServerContext; constructor(metadata: T, file_metadata: FabFileMetadata, context: FABServerContext); static initialize(metadata: FabMetadata, plugins: RuntimeImports, context: FABServerContext): FABRuntime; getPipeline(): FabRequestResponder[]; }