import { Middleware } from 'redux'; /** * Returns true if the passed value is "plain", i.e. a value that is either * directly JSON-serializable (boolean, number, string, array, plain object) * or `undefined`. * * @param val The value to check. */ export declare function isPlain(val: any): boolean; interface NonSerializableValue { keyPath: string; value: unknown; } export declare function findNonSerializableValue(value: unknown, path?: ReadonlyArray, isSerializable?: (value: unknown) => boolean): NonSerializableValue | false; /** * Options for `createSerializableStateInvariantMiddleware()`. */ export interface SerializableStateInvariantMiddlewareOptions { /** * The function to check if a value is considered serializable. This * function is applied recursively to every value contained in the * state. Defaults to `isPlain()`. */ isSerializable?: (value: any) => boolean; } /** * Creates a middleware that, after every state change, checks if the new * state is serializable. If a non-serializable value is found within the * state, an error is printed to the console. * * @param options Middleware options. */ export declare function createSerializableStateInvariantMiddleware(options?: SerializableStateInvariantMiddlewareOptions): Middleware; export {};