import { ActivationFn } from "../methods/activation"; import { Connection } from "./connection"; export declare const allNodeTypes: readonly ["input", "hidden", "output"]; export type NodeType = typeof allNodeTypes[number]; export interface Node { bias: number; squash: ActivationFn; type: NodeType; activation: number; state: number; old: number; activate: (input: number | undefined) => number; propagate: (rate: number, momentum: number, update: boolean, target: number) => number; connect: (node: Node, weight: number) => Connection[]; disconnect: (node: Node, twosided: boolean) => void; gate: (connections: Connection[]) => void; ungate: (connections: Connection[]) => void; isProjectingTo: (node: Node) => boolean; isProjectedBy: (node: Node) => boolean; toJSON: () => object; clear: () => void; } export type NodeVal = { bias?: number; squash?: ActivationFn; type?: NodeType; activation?: number; state?: number; old?: number; }; export declare function create(type?: NodeType): Node; export declare const classConstructor: (type: NodeType) => void;