import { Entity } from '../entity'; import { Queue } from '../utils'; import { Manager } from '../manager'; import { Query } from '../query'; export interface IEdgeQueueActionData { manager: Manager; edge: Edge; srcAdded: string[]; dstAdded: string[]; srcRemoved: string[]; dstRemoved: string[]; } export interface IEdgeRaw { id?: string; src: string; dst: string; } export declare type EdgeSingle = (manager: Manager, deep?: number) => Promise; export declare class Edge { static create(srcCtor: string | (new () => Src), edgeName: string, dstCtor: string | (new () => Dst), entityId: () => string): Edge; static createFromDst(srcCtor: string | (new () => Src), edgeName: string, dstCtor: string | (new () => Dst), entityId: () => string): Edge; static generateQuery(fullEdgeName: string): Query; static generateFullEdgeName(classNameSrc: string, edgeName: string, classNameDst: any): string; private _classNameSrc; private _classNameDst; private _edgeName; private _mode; private _queue; private _entityId; private initQueueData; constructor(srcCtor: string | (new () => Entity), edgeName: string, dstCtor: string | (new () => Entity), mode: 'src' | 'dst', entityId: () => string); get entityId(): string; get queue(): Queue; get edgeName(): string; get classNameSrc(): string; get classNameDst(): string; get fullEdgeName(): string; get query(): Query; add(obj: Remote | Remote[] | string | string[]): this; remove(obj: Remote | Remote[] | string | string[]): this; execute(manager: Manager): Promise; }