import { NextResponse, NextRequest } from 'next/server';
import { ExperienceParams, GraphQLPersonalizeServiceConfig } from '@sitecore-jss/sitecore-jss/personalize';
import { MiddlewareBase, MiddlewareBaseConfig } from './middleware';
export type ScPersonalizeMiddlewareConfig = MiddlewareBaseConfig & {
    edgeConfig: Omit<GraphQLPersonalizeServiceConfig, 'fetch'>;
};
/**
 * Middleware / handler to support Sitecore Personalize
 */
export declare class ScPersonalizeMiddleware extends MiddlewareBase {
    protected config: ScPersonalizeMiddlewareConfig;
    private _personalizeService;
    /**
     * @param {ScPersonalizeMiddlewareConfig} [config] Personalize middleware config
     */
    constructor(config: ScPersonalizeMiddlewareConfig);
    /**
     * Gets the Next.js middleware handler with error handling
     * @returns middleware handler
     */
    getHandler(): (req: NextRequest, res?: NextResponse) => Promise<NextResponse>;
    protected getExperienceParams(req: NextRequest): ExperienceParams;
    protected excludeRoute(pathname: string): boolean | undefined;
    private handler;
}
