import { Middleware, MiddlewareMessage, MiddlewareMetadata, MiddlewareRequestHandler, MiddlewareStatus } from './middleware';
declare class ExperimentalMomentoLocalMiddlewareRequestHandler implements MiddlewareRequestHandler {
    private readonly metadata;
    constructor(metadata: ExperimentalMomentoLocalTestConfigMetadata);
    onRequestBody(request: MiddlewareMessage): Promise<MiddlewareMessage>;
    onRequestMetadata(metadata: MiddlewareMetadata): Promise<MiddlewareMetadata>;
    onResponseMetadata(metadata: MiddlewareMetadata): Promise<MiddlewareMetadata>;
    onResponseBody(response: MiddlewareMessage | null): Promise<MiddlewareMessage | null>;
    onResponseStatus(status: MiddlewareStatus): Promise<MiddlewareStatus>;
    private setGrpcMetadata;
}
interface ExperimentalMomentoLocalTestConfigMetadata {
    requestId: string;
    returnError?: string;
    errorRpcs?: string[];
    errorCount?: number;
    delayRpcs?: string[];
    delayMs?: number;
    delayCount?: number;
    streamErrorRpcs?: string[];
    streamError?: string;
    streamErrorMessageLimit?: number;
}
declare class ExperimentalMomentoLocalTestConfigMiddleware implements Middleware {
    shouldLoadLate: boolean;
    private readonly metadata;
    constructor(metadata: ExperimentalMomentoLocalTestConfigMetadata);
    onNewRequest(): MiddlewareRequestHandler;
}
export { ExperimentalMomentoLocalTestConfigMiddleware, ExperimentalMomentoLocalTestConfigMetadata, ExperimentalMomentoLocalMiddlewareRequestHandler, };
