import '../../../assert/js/assert.js';
import '../../../globals.js';
import { IntentionalPerennialAny } from './PerennialTypes.js';
export declare function isAffirmEnabled(): boolean;
/**
 * Like assert.js, with the following differences:
 *
 * 1. Can be used in browser/node/both code
 * 2. Call are stripped out during the babel step, without another guard
 * 3. Adds an `asserts` type to the predicate, which is a TypeScript feature that allows the type checker to
 *    understand that the predicate is true after the call to affirm.
 *
 * We choose the term affirm since it has a positive connotation, and has a similar letter pattern as assert, and since
 * the term `affirm` is not otherwise used in our codebase.
 *
 * @author Sam Reid (PhET Interactive Simulations)
 * @author Michael Kauzmann (PhET Interactive Simulations)
 */
export default function affirm(predicate: unknown, ...messages: IntentionalPerennialAny[]): asserts predicate;
/**
 * A lazy version of affirm that accepts a function which returns the predicate.
 *
 * If assertions are disabled, `predicate` won't even be called.
 * If assertions are enabled, `affirmCallback` calls `affirm` with the returned value.
 */
export declare function affirmCallback(predicate: () => unknown, ...messages: IntentionalPerennialAny[]): void;
export declare function addAffirmationHook(hook: () => void): void;
export declare function setAffirmationDebuggerMode(isDebuggerMode: boolean): void;
//# sourceMappingURL=affirm.d.ts.map