import type { IPrimitiveDefinition } from './mccarthy';
/**
 * EVAL - Evaluate a quoted expression
 * (eval '(+ 1 2)) → 3
 */
export declare const evalPrimitive: IPrimitiveDefinition;
/**
 * APPLY - Apply a function to a list of arguments
 * (apply + '(1 2 3)) → 6
 */
export declare const apply: IPrimitiveDefinition;
/**
 * LAMBDA - Create a function
 * (lambda (x y) (+ x y))
 */
export declare const lambda: IPrimitiveDefinition;
/**
 * DEFINE - Create a global binding
 * (define name value)
 * (define (fn args...) body) ; shorthand for function
 */
export declare const define: IPrimitiveDefinition;
/**
 * LET - Local bindings
 * (let ((x 1) (y 2)) (+ x y)) → 3
 */
export declare const letPrimitive: IPrimitiveDefinition;
/**
 * LET* - Sequential local bindings
 * (let* ((x 1) (y (+ x 1))) y) → 2
 */
export declare const letStar: IPrimitiveDefinition;
/**
 * LETREC - Recursive local bindings
 * (letrec ((fact (lambda (n) (if (< n 2) 1 (* n (fact (- n 1))))))) (fact 5))
 */
export declare const letrec: IPrimitiveDefinition;
/**
 * IF - Conditional expression
 * (if condition then-expr else-expr)
 */
export declare const ifPrimitive: IPrimitiveDefinition;
/**
 * WHEN - One-armed if
 * (when condition expr)
 */
export declare const when: IPrimitiveDefinition;
/**
 * UNLESS - Negated when
 * (unless condition expr)
 */
export declare const unless: IPrimitiveDefinition;
/**
 * CASE - Value-based dispatch
 * (case value ((val1) result1) ((val2) result2) (else default))
 */
export declare const casePrimitive: IPrimitiveDefinition;
/**
 * DO/PROGN - Sequential evaluation
 * (do expr1 expr2 expr3) → result of expr3
 */
export declare const doPrimitive: IPrimitiveDefinition;
/**
 * QUASIQUOTE - Template with unquote
 * `(a b ,x ,@y)
 */
export declare const quasiquote: IPrimitiveDefinition;
/**
 * DEFMACRO - Define a macro
 * (defmacro unless (test body) `(if (not ,test) ,body))
 */
export declare const defmacro: IPrimitiveDefinition;
/**
 * MACROEXPAND - Expand a macro call
 * (macroexpand '(unless condition body))
 */
export declare const macroexpand: IPrimitiveDefinition;
/**
 * GENSYM - Generate unique symbol
 * (gensym) → G__1234
 * (gensym "prefix") → prefix__1234
 */
export declare const gensym: IPrimitiveDefinition;
/**
 * TRY/CATCH - Error handling
 * (try expr (catch e handler))
 */
export declare const tryPrimitive: IPrimitiveDefinition;
/**
 * THROW/ERROR - Raise an error
 * (throw "something went wrong")
 */
export declare const throwPrimitive: IPrimitiveDefinition;
/**
 * TYPE PREDICATES
 */
export declare const numberp: IPrimitiveDefinition;
export declare const booleanp: IPrimitiveDefinition;
export declare const functionp: IPrimitiveDefinition;
/**
 * TYPE CONVERSION
 */
export declare const toNumber: IPrimitiveDefinition;
export declare const toFloat: IPrimitiveDefinition;
export declare const toString: IPrimitiveDefinition;
export declare const toBoolean: IPrimitiveDefinition;
/**
 * JSON
 */
export declare const jsonParse: IPrimitiveDefinition;
export declare const jsonStringify: IPrimitiveDefinition;
/**
 * TIME
 */
export declare const now: IPrimitiveDefinition;
export declare const sleep: IPrimitiveDefinition;
/**
 * DEBUG
 */
export declare const print: IPrimitiveDefinition;
export declare const debug: IPrimitiveDefinition;
/**
 * THREAD-FIRST - Threading macro
 * (-> x (f a) (g b)) = (g (f x a) b)
 */
export declare const threadFirst: IPrimitiveDefinition;
/**
 * All meta primitives
 */
export declare const metaPrimitives: IPrimitiveDefinition[];
//# sourceMappingURL=meta.d.ts.map