import { URL } from '../path'; import * as wss from '../ws/service'; import * as cli from '../ws/cli'; import * as _center from './_center'; import { ConversationBasic } from '../ws/_conv'; type IMPL = _center.FastMessageTransferCenter_IMPL; export interface QueryResult { time: Date; uuid: string; } export declare abstract class FNode { protected m_initTime: number; protected m_center: IMPL; abstract get id(): string; abstract get publishURL(): URL | null; get initTime(): number; get center(): _center.FastMessageTransferCenter_IMPL; constructor(center: IMPL); initialize(initTime?: number): Promise; destroy(): Promise; abstract publish(event: string, data: any): Promise; abstract broadcast(event: string, data: any, id: string): Promise; abstract triggerTo(id: string, event: string, data: any, sender: string): Promise; abstract callTo(id: string, method: string, data: any, timeout: number, sender: string): Promise; abstract sendTo(id: string, method: string, data: any, sender: string): Promise; abstract user(id: string): Promise>; abstract query(id: string, more?: boolean): Promise; } /** * @class FMTNodeLocal */ export declare class FNodeLocal extends FNode { get id(): string; get publishURL(): URL | null; publish(event: string, data: any): Promise; broadcast(event: string, data: any, id: string): Promise; triggerTo(id: string, event: string, data: any, sender: string): Promise; callTo(id: string, method: string, data: any, timeout: number, sender: string): Promise; sendTo(id: string, method: string, data: any, sender: string): Promise; user(id: string): Promise>; query(id: string, more?: boolean): Promise; } /** * @class FNodeRemote */ export declare class FNodeRemote extends FNode { private m_impl; private m_node_id; private m_isInit; constructor(center: IMPL, impl: FNodeRemoteIMPL, id: string); initialize(initTime?: number): Promise; destroy(): Promise; get id(): string; get publishURL(): URL | null; publish(event: string, data: any): Promise; broadcast(event: string, data: any, id: string): Promise; triggerTo(id: string, event: string, data: any, sender: string): Promise; callTo(id: string, method: string, data: any, timeout: number, sender: string): Promise; sendTo(id: string, method: string, data: any, sender: string): Promise; user(id: string): Promise; query(id: string, more?: boolean): Promise; } /** * @class FNodeRemoteIMPL */ export declare abstract class FNodeRemoteIMPL { abstract get conv(): ConversationBasic; abstract get center(): IMPL; abstract get thatFnode(): URL | null; abstract get fnode(): FNode; abstract call(method: string, data?: any, timeout?: number, sender?: string): Promise; abstract send(method: string, data?: any, sender?: string): Promise; publish([event, data]: [string, any]): void; broadcast([event, data, id]: [string, any, string]): void; triggerTo([id, event, data, sender]: [string, string, any, string]): Promise; callTo([id, method, data, timeout, sender]: [string, string, any, number, string]): Promise; sendTo([id, method, data, sender]: [string, string, any, string]): Promise; user([id]: [string]): Dict; query([id, more]: [string, boolean]): boolean | { time: Date; uuid: string; } | null; } /** * @class FNodeRemoteService */ export declare class FNodeRemoteService extends wss.WSService { private m_center; private m_that_fnode; private m_fnode; get thatFnode(): URL | null; get center(): IMPL; get fnode(): FNode; requestAuth(): Promise; load(): Promise; destroy(): Promise; } /** * @class FNodeRemoteClient */ export declare class FNodeRemoteClient extends cli.WSClient { private m_center; private m_that_fnode; private m_fnode; get center(): IMPL; get thatFnode(): URL; get fnode(): FNode; constructor(center: IMPL, fnode?: string); _init(): Promise; } export {};