import { Atom, Noun } from '@urbit/nockjs';

export type Json = null | boolean | number | string | Json[] | {
    [key: string]: Json;
};
export type EnjsFunction = (n: Noun) => Json;
export declare const giveNull: EnjsFunction;
export declare const maybe: (fn: EnjsFunction) => EnjsFunction;
export declare const getPatp: EnjsFunction;
export declare const getUv: EnjsFunction;
export declare const time: EnjsFunction;
export declare function getMapAsObject<T>(noun: Noun, key: EnjsFunction, value: EnjsFunction): Record<string, T>;
export declare function runIfAtom(fn: (atom: Atom) => Json): EnjsFunction;
export declare const logNoun: (fn: EnjsFunction, str: string) => EnjsFunction;
interface frondValueOpt<T> {
    tag: string;
    get: (noun: Noun) => T;
}
export declare function getFrondValue<T>(opts: frondValueOpt<T>[]): (n: Noun) => T;
export {};
//# sourceMappingURL=noun.d.ts.map