import * as T from "../../Effect/index.js";
import type { Lazy } from "../../Function/index.js";
import * as O from "../../Option/index.js";
import * as AMD from "../AssertionMData/index.js";
import type * as ARM from "../AssertionResultM/index.js";
import * as R from "../Render/index.js";
import { AssertionM } from "./AssertionM.js";
/**
* Returns a new assertion that succeeds only if both assertions succeed.
*/
export declare function and(self: AssertionM, that: Lazy>): AssertionM;
/**
* Returns a new assertion that succeeds if either assertion succeeds.
*/
export declare function or(self: AssertionM, that: Lazy>): AssertionM;
/**
* Labels this assertion with the specified string.
*/
export declare function label_(self: AssertionM, str: string): AssertionM;
/**
* Labels this assertion with the specified string.
*/
export declare function label(str: string): (self: AssertionM) => AssertionM;
/**
* Makes a new `AssertionM` from a pretty-printing and a function.
*/
export declare function makeAssertionDirect(name: string, ...params: R.RenderParam[]): (run: (a: Lazy) => ARM.AssertResultM) => AssertionM;
/**
* Makes a new `AssertionM` from a pretty-printing and a function.
*/
export declare function makeAssertionM(name: string, ...params: R.RenderParam[]): (run: (a: Lazy) => T.UIO) => AssertionM;
/**
* Makes a new `AssertionM` from a pretty-printing and a function.
*/
export declare function makeAssertionRecM(name: string, ...params: R.RenderParam[]): (assertion: AssertionM) => (get: (a: Lazy) => T.Effect>, orElse?: (amd: AMD.AssertionMData) => ARM.AssertResultM) => AssertionM;
/**
* Makes a new assertion that negates the specified assertion.
*/
export declare function not(assertion: AssertionM): AssertionM;
//# sourceMappingURL=api.d.ts.map