import { JSONSchema7 } from 'json-schema'; import { RequestTask } from 'rockets-client'; import { Observable } from 'rxjs'; import { ADD_CLIP_PLANE_TYPE, ANIMATION_PARAMS_TYPE, APP_PARAMS_TYPE, CAMERA_TYPE, GET_ANIMATION_PARAMS_TYPE, GET_APP_PARAMS_TYPE, GET_CAMERA_PARMS_TYPE, GET_CAMERA_TYPE, GET_CLIP_PLANES_TYPE, GET_ENVIRONMENT_MAP_TYPE, GET_LOADERS_TYPE, GET_MODEL_PROPERTIES_TYPE, GET_MODEL_TRANSFER_FUNCTION_TYPE, GET_RENDERER_PARMS_TYPE, GET_RENDERER_TYPE, GET_SCENE_TYPE, GET_STATISTICS_TYPE, GET_VERSION_TYPE, IMAGE_JPEG_TYPE, INSPECT_TYPE, LOAD_MODEL_TYPE, LOADERS_SCHEMA_TYPE, MODEL_PROPERTIES_SCHEMA_TYPE, QUIT_TYPE, REMOVE_CLIP_PLANES_TYPE, REMOVE_MODEL_TYPE, RENDERER_PARMS_TYPE, RENDERER_TYPE, SCENE_TYPE, SCHEMA_TYPE, SET_ANIMATION_PARAMS_TYPE, SET_APP_PARAMS_TYPE, SET_CAMERA_PARMS_TYPE, SET_CAMERA_TYPE, SET_ENVIRONMENT_MAP_TYPE, SET_MODEL_PROPERTIES_TYPE, SET_MODEL_TRANSFER_FUNCTION_TYPE, SET_RENDERER_PARMS_TYPE, SET_RENDERER_TYPE, SET_SCENE_TYPE, SET_STATISTICS_TYPE, SNAPSHOT_TYPE, STATISTICS_TYPE, UPDATE_CLIP_PLANE_TYPE, UPDATE_MODEL_TYPE, UPLOAD_MODEL_TYPE, VERSION_TYPE } from './constants'; import { AnimationParameters, ApplicationParameters, BinaryParams, Camera, CameraParams, ClipPlane, EnvironmentMap, GetModelPropsParams, GetModelPropsSchemaParams, InspectCoords, InspectParams, Loader, Model, ModelPropsParams, ModelUpdateParams, PathParams, Plane, Renderer, RendererParams, Scene, SchemaParams, SetAnimationParameters, SetTransferFunctionParams, Snapshot, SnapshotParams, Statistics, TransferFunction, TransferFunctionParams, UploadParams, UpstreamSetTransferFunctionParams, Version } from './types'; export declare const BRAYNS_WS_PATH = "ws"; /** * JavaScript/TypeScript client for Brayns * https://github.com/BlueBrain/Brayns * * Upon init, the client will try to establish a connection with the Brayns server. * If it fails, it will retry every 5s. * * NOTE: Params for requests and outgoing notifications will be converted to snakecase, * and params for incoming notifications will be converted to camelcase. * * @example * import { * CANCEL, * Client, * GET_APP_PARAMS, * SET_APP_PARAMS * } from 'brayns'; * import {take} from 'rxjs/operators'; * * // Create and connect * const brayns = new Client('myhost.io'); * * // Listen to notifications * brayns.observe(SET_APP_PARAMS) * .subscribe(params => { * console.log(params); * }); * * // Send a notification * brayns.notify(CANCEL, {id: 1}); * * // Make a request * try { * const params = await brayns.request(GET_APP_PARAMS); * console.log(params); * } catch (err) { * console.error(err); * } * * // Upload some model * try { * await brayns.upload({file}); * } catch (err) { * console.error(err); * } */ export declare class Client { private binary; private notifications; private connection; ready: Observable; private rockets?; /** * Create a client and setup a connection with the Brayns server * @param host */ constructor(host: string); /** * Send an RPC notification * @param method * @param params */ notify(method: SET_ANIMATION_PARAMS_TYPE, params: Partial): void; notify(method: SET_APP_PARAMS_TYPE, params: Partial): void; notify(method: SET_CAMERA_TYPE, params: Partial): void; notify(method: SET_RENDERER_TYPE, params: Partial): void; notify(method: SET_CAMERA_PARMS_TYPE | SET_RENDERER_PARMS_TYPE, params: object): void; notify(method: SET_SCENE_TYPE, params: Partial): void; notify(method: SET_MODEL_PROPERTIES_TYPE, params: ModelPropsParams): void; notify(method: SET_MODEL_TRANSFER_FUNCTION_TYPE, params: SetTransferFunctionParams): void; notify(method: QUIT_TYPE): void; /** * Make an RPC request * @param method */ request(method: GET_ANIMATION_PARAMS_TYPE): RequestTask; request(method: SET_ANIMATION_PARAMS_TYPE, params: SetAnimationParameters): RequestTask; request(method: GET_APP_PARAMS_TYPE): RequestTask; request(method: SET_CAMERA_TYPE, params: CameraParams): RequestTask; request(method: GET_CAMERA_TYPE): RequestTask; request(method: GET_RENDERER_TYPE): RequestTask; request(method: SET_RENDERER_TYPE, params: RendererParams): RequestTask; request(method: GET_CAMERA_PARMS_TYPE | GET_RENDERER_PARMS_TYPE): RequestTask; request(method: SET_CAMERA_PARMS_TYPE | SET_RENDERER_PARMS_TYPE, params: object): RequestTask; request(method: GET_STATISTICS_TYPE): RequestTask; request(method: GET_VERSION_TYPE): RequestTask; request(method: INSPECT_TYPE, params: InspectParams): RequestTask; request(method: GET_SCENE_TYPE): RequestTask; request(method: SET_SCENE_TYPE, params: Partial): RequestTask, boolean>; request(method: LOAD_MODEL_TYPE, params: PathParams): RequestTask; request(method: REMOVE_MODEL_TYPE, params: Array): RequestTask, boolean>; request(method: UPDATE_MODEL_TYPE, params: ModelUpdateParams): RequestTask; request(method: GET_MODEL_PROPERTIES_TYPE, params: GetModelPropsParams): RequestTask; request(method: SET_MODEL_PROPERTIES_TYPE, params: ModelPropsParams): RequestTask; request(method: MODEL_PROPERTIES_SCHEMA_TYPE, params: GetModelPropsSchemaParams): RequestTask; request(method: GET_MODEL_TRANSFER_FUNCTION_TYPE, params: TransferFunctionParams): RequestTask; request(method: SET_MODEL_TRANSFER_FUNCTION_TYPE, params: SetTransferFunctionParams): RequestTask; request(method: GET_LOADERS_TYPE): RequestTask; request(method: LOADERS_SCHEMA_TYPE): RequestTask; request(method: ADD_CLIP_PLANE_TYPE, params: Plane): RequestTask; request(method: UPDATE_CLIP_PLANE_TYPE, params: ClipPlane): RequestTask; request(method: GET_CLIP_PLANES_TYPE): RequestTask; request(method: REMOVE_CLIP_PLANES_TYPE, params: number[]): RequestTask; request(method: SNAPSHOT_TYPE, params: SnapshotParams): RequestTask; request(method: SCHEMA_TYPE, params: SchemaParams): RequestTask; request(method: SET_ENVIRONMENT_MAP_TYPE, params: EnvironmentMap): RequestTask; request(method: GET_ENVIRONMENT_MAP_TYPE): RequestTask; /** * Observe notifications broadcasted by the Brayns server * @param method */ observe(method: SET_ANIMATION_PARAMS_TYPE): Observable; observe(method: SET_APP_PARAMS_TYPE): Observable; observe(method: SET_CAMERA_TYPE): Observable; observe(method: SET_CAMERA_PARMS_TYPE | SET_RENDERER_PARMS_TYPE): Observable; observe(method: SET_RENDERER_TYPE): Observable; observe(method: SET_SCENE_TYPE): Observable; observe(method: SET_MODEL_PROPERTIES_TYPE): Observable; observe(method: SET_MODEL_TRANSFER_FUNCTION_TYPE): Observable; observe(method: UPDATE_CLIP_PLANE_TYPE): Observable; observe(method: REMOVE_CLIP_PLANES_TYPE): Observable; observe(method: SET_STATISTICS_TYPE): Observable; observe(method: IMAGE_JPEG_TYPE): Observable; observe(method: SET_ENVIRONMENT_MAP_TYPE): Observable; /** * Upload a model * @param data */ upload(data: BinaryParams): RequestTask; private connect; private addListeners; private reconnect; } export declare function appendWsPath(url: string): string; export declare type RequestType = GET_ANIMATION_PARAMS_TYPE | SET_ANIMATION_PARAMS_TYPE | GET_APP_PARAMS_TYPE | GET_CAMERA_TYPE | SET_CAMERA_TYPE | GET_CAMERA_PARMS_TYPE | SET_CAMERA_PARMS_TYPE | GET_RENDERER_TYPE | SET_RENDERER_TYPE | GET_RENDERER_PARMS_TYPE | SET_RENDERER_PARMS_TYPE | GET_STATISTICS_TYPE | GET_VERSION_TYPE | INSPECT_TYPE | GET_SCENE_TYPE | SET_SCENE_TYPE | LOAD_MODEL_TYPE | UPLOAD_MODEL_TYPE | REMOVE_MODEL_TYPE | UPDATE_MODEL_TYPE | MODEL_PROPERTIES_SCHEMA_TYPE | GET_MODEL_PROPERTIES_TYPE | SET_MODEL_PROPERTIES_TYPE | GET_MODEL_TRANSFER_FUNCTION_TYPE | SET_MODEL_TRANSFER_FUNCTION_TYPE | GET_LOADERS_TYPE | LOADERS_SCHEMA_TYPE | ADD_CLIP_PLANE_TYPE | UPDATE_CLIP_PLANE_TYPE | GET_CLIP_PLANES_TYPE | REMOVE_CLIP_PLANES_TYPE | SNAPSHOT_TYPE | SCHEMA_TYPE | SET_ENVIRONMENT_MAP_TYPE | GET_ENVIRONMENT_MAP_TYPE; export declare type NotificationType = SET_ANIMATION_PARAMS_TYPE | SET_APP_PARAMS_TYPE | SET_CAMERA_TYPE | SET_CAMERA_PARMS_TYPE | SET_RENDERER_TYPE | SET_RENDERER_PARMS_TYPE | SET_SCENE_TYPE | SET_MODEL_PROPERTIES_TYPE | UPDATE_CLIP_PLANE_TYPE | REMOVE_CLIP_PLANES_TYPE | SET_MODEL_TRANSFER_FUNCTION_TYPE | QUIT_TYPE; export declare type ObservableType = SET_ANIMATION_PARAMS_TYPE | SET_APP_PARAMS_TYPE | SET_CAMERA_TYPE | SET_CAMERA_PARMS_TYPE | SET_RENDERER_TYPE | SET_RENDERER_PARMS_TYPE | SET_SCENE_TYPE | SET_MODEL_PROPERTIES_TYPE | SET_MODEL_TRANSFER_FUNCTION_TYPE | SET_STATISTICS_TYPE | SET_ENVIRONMENT_MAP_TYPE; export declare type SchemaType = RequestType | NotificationType | ObservableType | ANIMATION_PARAMS_TYPE | APP_PARAMS_TYPE | CAMERA_TYPE | RENDERER_TYPE | RENDERER_PARMS_TYPE | SCENE_TYPE | STATISTICS_TYPE | VERSION_TYPE;