import nodes = require("./ast/nodes");
import { Topology } from "./Topology";
export { nodes };
export interface IASTOptions {
    topology: Topology;
}
export declare class AST {
    static nodes: typeof nodes;
    topology: Topology;
    inputs: nodes.Variable[];
    outputs: nodes.Variable[];
    targets: nodes.Variable[];
    document: nodes.DocumentNode;
    constructor(options: IASTOptions);
    reset(): void;
    isArrayOrdered(items: number[]): boolean;
    isOrdered(from: number, to: number, accessor: (string | number)[]): boolean;
    isSameActivationTypeOrdered(from: number, to: number, accessor: string[]): void;
    build(): void;
    private getFunctionBodyNode(functionName);
    private buildActivationDerivative(j, layerJ, targetFunction?);
    private buildActivationTraces(j, layerJ);
    private buildWholeLayerActivation(bucket);
    private buildComputeState(j, layerJ, targetFunction?);
    private buildActivation(j, layerJ, targetFunction?);
    private buildPropagation(j, layerJ, targetJ?);
    getDocument(): nodes.DocumentNode;
}
export default AST;
