import type { IPrimitiveDefinition } from './mccarthy';
/**
 * MAP - Apply function to each element
 * (map (lambda (x) (* x x)) '(1 2 3)) → (1 4 9)
 *
 * Note: map requires applyLambda to be injected by the interpreter
 */
export declare const map: IPrimitiveDefinition;
/**
 * FILTER - Keep elements where predicate is true
 * (filter (lambda (x) (> x 2)) '(1 2 3 4)) → (3 4)
 */
export declare const filter: IPrimitiveDefinition;
/**
 * REDUCE - Fold a list with a function
 * (reduce + 0 '(1 2 3 4)) → 10
 */
export declare const reduce: IPrimitiveDefinition;
/**
 * FIND - Find first matching element
 * (find (lambda (x) (> x 2)) '(1 2 3 4)) → 3
 */
export declare const find: IPrimitiveDefinition;
/**
 * EVERY - Check if all elements satisfy predicate
 * (every (lambda (x) (> x 0)) '(1 2 3)) → true
 */
export declare const every: IPrimitiveDefinition;
/**
 * SOME - Check if any element satisfies predicate
 * (some (lambda (x) (> x 2)) '(1 2 3)) → true
 */
export declare const some: IPrimitiveDefinition;
/**
 * COMPOSE - Function composition
 * ((compose f g) x) = (f (g x))
 */
export declare const compose: IPrimitiveDefinition;
/**
 * PARTIAL - Partial application
 * ((partial + 1) 2) → 3
 */
export declare const partial: IPrimitiveDefinition;
/**
 * CURRY - Currying
 * ((curry + 1) 2) → 3
 */
export declare const curry: IPrimitiveDefinition;
/**
 * JUXT - Apply multiple functions, return list of results
 * ((juxt inc dec) 5) → (6 4)
 */
export declare const juxt: IPrimitiveDefinition;
/**
 * COMPLEMENT - Negate a predicate
 * ((complement even?) 3) → true
 */
export declare const complement: IPrimitiveDefinition;
/**
 * IDENTITY - Return argument unchanged
 * (identity 42) → 42
 */
export declare const identity: IPrimitiveDefinition;
/**
 * CONSTANTLY - Return a function that always returns the same value
 * ((constantly 42) anything) → 42
 */
export declare const constantly: IPrimitiveDefinition;
/**
 * All higher-order primitives
 * Note: Most require interpreter support for lambda handling
 */
export declare const higherOrderPrimitives: IPrimitiveDefinition[];
//# sourceMappingURL=higher-order.d.ts.map