import { DynamicModule, NestMiddleware, Type } from "@nestjs/common";
import { Federation, FederationOptions } from "@fedify/fedify";

//#region src/fedify.module.d.ts
declare class FedifyModule {
  static forRoot(options: FederationOptions<unknown>): DynamicModule;
}
//#endregion
//#region src/fedify.constants.d.ts
declare const FEDIFY_FEDERATION = "FEDIFY_FEDERATION";
//#endregion
//#region src/fedify.middleware.d.ts
type ContextDataFactory<TContextData> = (req: Request, res: Response) => TContextData | Promise<TContextData>;
declare function integrateFederation<TContextData>(federation: Federation<unknown>, contextDataFactory: ContextDataFactory<TContextData>): Type<NestMiddleware>;
//#endregion
export { ContextDataFactory, FEDIFY_FEDERATION, FedifyModule, integrateFederation };