import { ProjectPredicate, PushTest } from "../PushTest";
import * as pred from "./predicateUtils";
/**
 * Return the opposite of this push test
 */
export declare const not: typeof pred.whenNot;
/**
 * Wrap all these PushTests or ProjectPredicates in a single PushTest
 * AND: Return true if all are satisfied
 */
export declare const and: typeof allSatisfied;
/**
 * Wrap all these PushTests or ProjectPredicates in a single PushTest
 * OR: Return true if any is satisfied
 */
export declare const or: typeof anySatisfied;
export declare type PushTestOrProjectPredicate = PushTest | ProjectPredicate;
/**
 * Wrap all these PushTests or ProjectPredicates in a single PushTest
 * AND: Return true if all are satisfied
 * @param {PushTest} pushTests
 * @return {PushTest}
 */
export declare function allSatisfied(...pushTests: PushTestOrProjectPredicate[]): PushTest;
/**
 * Wrap all these PushTests or ProjectPredicates in a single PushTest
 * OR: Return true if any is satisfied
 * @param {PushTest} pushTests
 * @return {PushTest}
 */
export declare function anySatisfied(...pushTests: PushTestOrProjectPredicate[]): PushTest;
/**
 * Cache the PushTest results for this push. The results will be cached based
 * on the name of the pushTest and the ID of the push. Make sure your push test
 * has a unique name!
 * @param {PushTest} pt
 * @return {PushTest}
 */
export declare function memoize(pt: PushTest): PushTest;
//# sourceMappingURL=pushTestUtils.d.ts.map