import type { GetServerSidePropsContext } from 'next'; import type { MosaicAppProps } from './middlewarePresets.js'; /** Props returned after running Middleware */ export declare type MiddlewareResult = Awaited>; /** Options to be passed to Middleware */ export declare type MosaicMiddlewareOptions = Record; /** Middleware callbacks return props to be added to the page */ export declare type MosaicMiddleware = ( /** Context provides information on the current page */ context: GetServerSidePropsContext, /** Middleware specific options */ options?: TOptions, /** Previous result created by plugins */ lastState?: Record) => Promise>; /** Middleware with a configuration object specifying options */ export declare type MosaicMiddlewareWithConfig = [ MosaicMiddleware, TConfig ]; /** Function to run all provided middleware */ export declare type MosaicMiddlewareRunner = (context: GetServerSidePropsContext, options: MosaicMiddlewareOptions) => Promise>; /** * Creates a middleware runner from the collection of provided middleware * @param initialState initial state * @param middleware a collection of middleware to be executed in order to get the page props * @returns a middleware runner */ export declare function createMiddlewareRunner(initialState: Record, middleware: Array | MosaicMiddlewareWithConfig>): MosaicMiddlewareRunner;