import { Node } from './node'; import { GroupSchema } from './group.schema'; export interface INodeSchema { schemaMap: { [key: string]: INodeSchema; }; apply(node?: Node): Node; attr(key: string, value: any): INodeSchema; node(id: string, build: (schema: INodeSchema) => void): INodeSchema; group(id: string, build: (schema: GroupSchema) => void): INodeSchema; get(id: string): INodeSchema; materialize(id: string): Node; } export declare function nodeSchema(GroupSchemaT: typeof GroupSchema): { new (schemaMap?: {}): { plan: any[]; planMap: {}; schemaMap: {}; clone(): INodeSchema; attr(key: string, value: any): any; apply(node?: Node): Node; node(id: string, build: (schema: INodeSchema) => void): any; group(id: string, build: (schema: GroupSchema) => void): any; get(id: string): any; materialize(id: string): Node; }; };