import type { TypeRelationshipAssertionData } from "../cache/writeAssertionCache.ts"; import type { AssertionContext } from "./attest.ts"; export type ThrowAssertionErrorContext = { message: string; expected?: unknown; actual?: unknown; stack: string; }; export declare const throwAssertionError: ({ stack, ...errorArgs }: ThrowAssertionErrorContext) => never; export declare class MissingSnapshotError extends Error { } export type AssertFn = (expected: unknown, actual: unknown, ctx: AssertionContext) => void; export type MappedTypeAssertionResult = { actual: unknown; expected?: unknown; } | null; export type TypeAssertionMapper = (data: TypeRelationshipAssertionData, ctx: AssertionContext) => MappedTypeAssertionResult; export declare class TypeAssertionMapping { fn: TypeAssertionMapper; constructor(fn: TypeAssertionMapper); } export declare const versionableAssertion: (fn: AssertFn) => AssertFn; export declare const assertEquals: AssertFn; export declare const assertSatisfies: AssertFn; export declare const typeEqualityMapping: TypeAssertionMapping; export declare const assertEqualOrMatching: AssertFn; export type AssertedFnCallResult = { returned?: unknown; threw?: string; }; export declare const getThrownMessage: (result: AssertedFnCallResult, ctx: AssertionContext) => string | undefined; export declare const callAssertedFunction: (asserted: Function) => AssertedFnCallResult;