@kittycad/lib
Version:
Javascript library for KittyCAD API
75 lines • 2.43 kB
TypeScript
import { Client } from './client';
import ModelingCommandsWs from './api/modeling/modeling_commands_ws';
import { OkWebSocketResponseData, SuccessWebSocketResponse, FailureWebSocketResponse } from './models';
type ExpectedWebSocketResponse = FailureWebSocketResponse | SuccessWebSocketResponse | Error;
type WorkerMessage = {
from: 'websocket';
payload: {
type: 'message';
data: unknown;
};
} | {
to: 'websocket';
payload: {
type: 'send';
data: unknown;
};
} | {
from: 'wasm';
payload: {
type: 'message';
data: unknown;
} | {
type: 'execute';
data: unknown;
};
};
type ZooClientArgs = {
client: Client;
} & Parameters<typeof ModelingCommandsWs.urlConstructFrom>[0];
export declare class WebRTC extends EventTarget {
private zooClientArgs;
private rtcPeerConnection;
private workerWebRTC;
track?: RTCTrackEvent;
channel?: RTCDataChannel;
removeMouseEvents: () => void;
removeResizeObserver: () => void;
constructor(args: ZooClientArgs);
deconstructor(): void;
start(): Promise<void>;
wasm(funcName: string, ...args: unknown[]): Promise<unknown>;
executor(): {
addEventListener: any;
removeEventListener: any;
submit: (kclStr: string, opts?: {
mainKclPathName: string;
}) => Promise<ExpectedWebSocketResponse>;
};
webRTCOnConnectionStateChange(): void;
webRTCOnTrack(ev: RTCTrackEvent): void;
webRTCOnDataChannel(ev: RTCDataChannelEvent): void;
iceOnIceServerInfo(msg: Extract<OkWebSocketResponseData, {
type: 'ice_server_info';
}>): Promise<void>;
iceOnSdpAnswer(msg: Extract<OkWebSocketResponseData, {
type: 'sdp_answer';
}>): Promise<void>;
iceOnTrickleIce(msg: Extract<OkWebSocketResponseData, {
type: 'trickle_ice';
}>): Promise<void>;
iceOnIceCandidate(ev: RTCPeerConnectionIceEvent): void;
iceOnMessage(ev: WorkerMessage['payload']): void;
workerWebRTCOnMessage(ev: MessageEvent<WorkerMessage>): void;
ice(): void;
deice(): void;
addMouseEvents(el: HTMLVideoElement): void;
resize(args: {
width: number;
height: number;
}): void;
addResizeObserver(el: HTMLElement): void;
send(...args: Parameters<WebSocket['send']>): Promise<ExpectedWebSocketResponse>;
}
export {};
//# sourceMappingURL=webrtc.d.ts.map