import { DeepClient, Exp } from "./client";
import { Link } from "./minilinks";
type Direction = "from" | "to" | "type" | "out" | "in" | "typed" | "up" | "down";
type Mode = 'local' | 'remote';
interface Travel<T extends "links"> {
    query: Exp<T>;
    direction?: Direction;
}
export declare const inversions: {
    from: string;
    to: string;
    type: string;
    out: string;
    in: string;
    typed: string;
    up: string;
    down: string;
};
export declare class Traveler {
    deep: DeepClient<Link<number>>;
    links: Link<number>[];
    travels: Travel<"links">[];
    mode: Mode;
    constructor(deep: any, links?: Link<number>[], travels?: Travel<any>[], mode?: Mode);
    from(query: Exp<"links">): Traveler;
    to(query: Exp<"links">): Traveler;
    type(query: Exp<"links">): Traveler;
    out(query: Exp<"links">): Traveler;
    in(query: Exp<"links">): Traveler;
    typed(query: Exp<"links">): Traveler;
    up(query: Exp<"tree">): Traveler;
    down(query: Exp<"tree">): Traveler;
    and(query: Exp<"links">): Traveler;
    get query(): Exp<"links">;
    select(): any;
    subscription(): import("zen-observable-ts").Observable<any>;
    count(): any;
    sum(): Promise<import("./client").DeepClientResult<Link<number>[]>>;
    avg(): Promise<import("./client").DeepClientResult<Link<number>[]>>;
    min(): Promise<import("./client").DeepClientResult<Link<number>[]>>;
    max(): Promise<import("./client").DeepClientResult<Link<number>[]>>;
    get local(): Traveler;
    get remote(): Traveler;
}
export {};
