import { Request } from 'express';
import { z } from 'zod';
import { Cursor, QueryEntitiesCursorRequest, QueryEntitiesInitialRequest, QueryEntitiesRequest } from '../catalog/types';
export declare function requireRequestBody(req: Request): Promise<unknown>;
export declare const locationInput: z.ZodObject<{
    type: z.ZodString;
    target: z.ZodString;
    presence: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"required">, z.ZodLiteral<"optional">]>>;
}, "strict", z.ZodTypeAny, {
    type: string;
    target: string;
    presence?: "required" | "optional" | undefined;
}, {
    type: string;
    target: string;
    presence?: "required" | "optional" | undefined;
}>;
export declare function validateRequestBody<T>(req: Request, schema: z.Schema<T>): Promise<T>;
export declare function disallowReadonlyMode(readonly: boolean): void;
export declare function isQueryEntitiesInitialRequest(input: QueryEntitiesRequest | undefined): input is QueryEntitiesInitialRequest;
export declare function isQueryEntitiesCursorRequest(input: QueryEntitiesRequest | undefined): input is QueryEntitiesCursorRequest;
export declare const cursorParser: z.ZodSchema<Cursor>;
export declare function encodeCursor(cursor: Cursor): string;
export declare function decodeCursor(encodedCursor: string): Cursor;
