/**
 * Socket message recorder middleware.
 *
 * Creates a middleware that records socket messages passing through
 * the socket manager. Follows the existing middleware pattern used
 * for authentication.
 */
import type { GenericMiddleware, RequestContextBase } from "@superblocksteam/shared";
import type { RecordingManager } from "../recording-manager.js";
/**
 * Extended context that includes method information.
 * The TracedSocket infrastructure provides the method name in the context.
 */
type RecordingContext = RequestContextBase & {
    /** The socket method being called */
    method?: string;
};
/**
 * Creates a socket recording middleware.
 *
 * This middleware records all socket messages before passing them to the next
 * handler. It captures the method name from context, request parameters, and peer ID.
 *
 * The actual data cleaning is handled by RecordingManager.recordSocket(),
 * which uses a switch statement to decide what to record for each method.
 *
 * @param recorder - The RecordingManager instance
 * @returns A GenericMiddleware that records socket messages
 *
 * @example
 * ```typescript
 * const recordingMiddleware = createSocketRecordingMiddleware(recorder);
 * // Add to middleware array in socket-manager.ts alongside authMiddleware
 * ```
 */
export declare function createSocketRecordingMiddleware(recorder: RecordingManager): GenericMiddleware<any, RecordingContext>;
export {};
//# sourceMappingURL=socket-recorder.d.ts.map