import { Handler } from '../handler'; import { QueryLike } from '../query'; import { Stream } from '@andyfischer/streams'; import { Table, Schema } from '../table'; import { GraphModule } from './GraphModule'; import { QueryParameters } from '../query'; export type QueryParametersLike = Map | object; export interface GraphLike { query(queryLike: QueryLike, params?: QueryParametersLike): Stream; eachHandler(): IterableIterator; } export declare function toQueryParameters(paramsLike: QueryParametersLike): QueryParameters; interface GraphTable { id?: string; name: string; table: Table; } export declare class Graph implements GraphLike { modules: Table; tables: Table; constructor(); newModule(): GraphModule; onModuleChange(graphModule: GraphModule): void; query(queryLike: QueryLike, paramsLike?: QueryParametersLike): Stream; runQueryFile(contents: string): void; mount(handlers: Handler[]): GraphModule; exposeFunc(decl: string, func: Function): GraphModule; eachHandler(): Generator; setupTable(schema: Schema): void; tableByName(name: string): Table; } export {};