import Tuple from './Tuple'; import Stream from './Stream'; import { TupleTag } from '.'; import QueryContext from './QueryContext'; import AutoInitMap from "./utils/AutoInitMap"; export declare type TupleStreamCallback = (input: Tuple, out: Stream) => void; export declare type MountId = string; interface HandlerFlags { needsEvalHelper?: boolean; needsInputStream?: boolean; needsOutputStream?: boolean; } declare class Handler { verb: string; inputPattern: Tuple; definiteValues: TupleTag[]; uniqueExprs: TupleTag[]; flags: HandlerFlags; callback: TupleStreamCallback; constructor(verb: string, originalInput: Tuple, callback: TupleStreamCallback); checkHasDefiniteValues(tuple: Tuple): boolean; } declare class HandlersByVerb { entries: Handler[]; add(entry: Handler): void; find(tuple: Tuple): Handler; } export default class TableMount { mountId: MountId; name: string; schema: Tuple; watches: Map; allEntries: Handler[]; byVerb: AutoInitMap; listeners: Map; constructor(name: string, schema: Tuple); addHandler(verb: string, tuple: string | Tuple, callback: TupleStreamCallback): void; hasHandler(verb: string, tuple: Tuple): boolean; callVerb(cxt: QueryContext, verb: string, tuple: Tuple, out: Stream): boolean; callInsertUnique(uniqueTag: TupleTag, tuple: Tuple, out: Stream): boolean; callWithDefiniteValues(cxt: QueryContext, verb: string, tuple: Tuple, out: Stream): boolean; callWithDefiniteValuesOrError(cxt: QueryContext, verb: string, tuple: Tuple, out: Stream): void; entriesByVerb(verb: string): Handler[]; find(verb: string, tuple: Tuple): Handler; findWithUnique(verb: string, uniqueTag: TupleTag, tuple: Tuple): Handler; findWithDefiniteValues(cxt: QueryContext, verb: string, tuple: Tuple): Handler; pushChangeEvent(cxt: any): void; } export {};