import { SourcePosition } from "@re-do/node"; import { WithDefaults } from "@re-do/utils"; import { TypeAssertions } from "./type"; import { ValueAssertion } from "./value"; export declare type AssertionResult> = ValueAssertion & (Config["allowTypeAssertions"] extends true ? TypeAssertions : {}); export declare type Assertion = (value: T) => AssertionResult; export declare type AssertionContext = (position: SourcePosition, value: T, opts?: ProvidedOptions) => AssertionResult; export declare type AssertionOptions = { allowTypeAssertions?: boolean; returnsCount?: number; }; export declare type AssertionConfig = Required; export declare const assertionContext: AssertionContext; export declare const assert: Assertion;