declare type FailureHandler<U extends any[]> = (...args: U) => Error;
export declare function assert(condition: boolean, failureMsg: string): void;
export declare function assert<U extends any[]>(condition: boolean, failure: FailureHandler<U>, ...failureArgs: U): void;
declare type Maybe<T> = T | null | undefined;
export declare function assertValue<T>(value: Maybe<T>, falsyValueMsg: string): asserts value is T;
export declare function assertValue<T, U extends any[]>(value: Maybe<T>, failure: FailureHandler<U>, ...failureArgs: U): asserts value is T;
export {};
