import { Assertion } from "../Assertion"; export interface Plugin> { /** * The `Assertion` instance the plugin adds */ Assertion: new (actual: T) => A; /** * The position were the predicate will test to return the `Assertion` or not: * - `top`: Test before all primitives and object-related types. * - `bottom`: Test after all primitives and object-related types. */ insertAt: "top" | "bottom"; /** * The predicate that tests if the actual value should returnt and instance of * the plugin's `Assertion`. */ predicate: (actual: unknown) => actual is T; } /** * A configuration class used to share a `config` instance. Useful to expose * methods that can change global settings. */ export declare class Config { private pluginSet; constructor(); plugins(): ReadonlyArray>>; addPlugin>(plugin: Plugin): void; } export declare const config: Config;