UNPKG

flipper-client-sdk

Version:

SDK to build Flipper clients for JS based apps

47 lines (46 loc) 1.7 kB
export declare type FlipperPluginID = string; export declare type FlipperMethodID = string; export declare class FlipperResponder { messageID?: number; private client; constructor(messageID: number, client: FlipperClient); success(response?: any): void; error(response?: any): void; } export declare type FlipperReceiver = (params: any, responder: FlipperResponder) => void; export declare class FlipperConnection { pluginId: FlipperPluginID; private client; private subscriptions; constructor(pluginId: FlipperPluginID, client: FlipperClient); send(method: FlipperMethodID, params: any): void; receive(method: FlipperMethodID, receiver: FlipperReceiver): void; call(method: FlipperMethodID, params: any, responder: FlipperResponder): void; hasReceiver(method: FlipperMethodID): boolean; } export interface FlipperPlugin { getId(): string; onConnect(connection: FlipperConnection): void; onDisconnect(): void; runInBackground(): boolean; } export declare abstract class FlipperClient { private _isConnected; protected plugins: Map<FlipperPluginID, FlipperPlugin>; protected connections: Map<FlipperPluginID, FlipperConnection>; addPlugin(plugin: FlipperPlugin): void; getPlugin(id: FlipperPluginID): FlipperPlugin | undefined; onConnect(): void; onDisconnect(): void; abstract start(appName: string): void; abstract stop(): void; abstract sendData(payload: any): void; abstract isAvailable(): boolean; protected onMessageReceived(message: { method: string; id: number; params: any; }): void; private connectPlugin; private disconnectPlugin; }