
import { Message } from "./middleware-sse-parser.cjs";
import { CopilotRuntimeLike } from "./runtime.cjs";
import { MaybePromise } from "@copilotkit/shared";

//#region src/v2/runtime/core/middleware.d.ts
interface BeforeRequestMiddlewareParameters {
  runtime: CopilotRuntimeLike;
  request: Request;
  path: string;
}
interface AfterRequestMiddlewareParameters {
  runtime: CopilotRuntimeLike;
  response: Response;
  path: string;
  /** Reconstructed messages from the SSE stream (empty for non-SSE responses). */
  messages?: Message[];
  /** Thread ID extracted from the RUN_STARTED event. */
  threadId?: string;
  /** Run ID extracted from the RUN_STARTED event. */
  runId?: string;
}
type BeforeRequestMiddlewareFn = (params: BeforeRequestMiddlewareParameters) => MaybePromise<Request | void>;
type AfterRequestMiddlewareFn = (params: AfterRequestMiddlewareParameters) => MaybePromise<void>;
/**
 * A middleware value can be either a callback function or a webhook URL.
 */
type BeforeRequestMiddleware = BeforeRequestMiddlewareFn;
type AfterRequestMiddleware = AfterRequestMiddlewareFn;
//#endregion
export { AfterRequestMiddleware, BeforeRequestMiddleware };
//# sourceMappingURL=middleware.d.cts.map