import type { Lazy } from "../../Function/index.js"; import * as O from "../../Option/index.js"; import * as ST from "../../Structural/index.js"; import * as AD from "../AssertionData/index.js"; import type * as AssertionM from "../AssertionM/AssertionM.js"; import type * as AR from "../AssertionResult/index.js"; import type * as ARM from "../AssertionResultM/index.js"; import * as PR from "../Primitives/index.js"; import * as R from "../Render/index.js"; export declare class Assertion implements AssertionM.AssertionM { readonly render: () => R.Render; readonly run: (a: Lazy) => AR.AssertResult; readonly [PR._A]: (_: A) => void; constructor(render: () => R.Render, run: (a: Lazy) => AR.AssertResult); runM(a: Lazy): ARM.AssertResultM; get stringify(): string; toString(): string; [ST.equalsSym](that: unknown): boolean; get [ST.hashSym](): number; } export declare function isAssertion(that: unknown): that is Assertion; export declare function makeAssertion(name: string, ...params: R.RenderParam[]): (run: (a: Lazy) => boolean) => Assertion; export declare function makeAssertionDirect(name: string, ...params: R.RenderParam[]): (run: (a: Lazy) => AR.AssertResult) => Assertion; export declare const isFalse: Assertion; export declare const isEmptyString: Assertion; export declare function equalTo(expected: A): Assertion; export declare function makeAssertionRec(name: string, ...params: R.RenderParam[]): (assertion: Assertion) => (get: (a: Lazy) => O.Option, orElse?: (ad: AD.AssertionData) => AR.AssertResult) => Assertion; export declare function hasProperty(name: string, proj: (a: A) => B, assertion: Assertion): Assertion; export declare function and(self: Assertion, that: Assertion): Assertion; export declare function or(self: Assertion, that: Assertion): Assertion; //# sourceMappingURL=index.d.ts.map