callskit
Version:
A toolkit for building call experience using Cloudflare Realtime
91 lines (85 loc) • 2.59 kB
text/typescript
import { S as SerializedUser, C as ChatMessage, a as ChatMessagePayload, L as Logger, b as CallClientOptions, c as CallClient } from './call-client-Bg6Zezz0.cjs';
export { h as CallChat, g as CallChatEvents, f as CallParticipant, e as CallSelf, d as CallSelfOptions, V as VideoEncodingRid } from './call-client-Bg6Zezz0.cjs';
import PartySocket, { PartySocketOptions } from 'partysocket';
import { TrackMetadata } from 'partytracks/client';
type RoomEvent = {
event: 'connected';
} | {
event: 'room/init';
participants: SerializedUser[];
started_at: string;
chatMessages: ChatMessage[];
};
type ParticipantEvent = {
event: 'participant/joined';
participant: SerializedUser;
} | {
event: 'participant/left';
participantId: string;
} | {
event: 'participant/camera-update';
data: {
cameraEnabled: boolean;
cameraTrackId?: TrackMetadata;
participantId: string;
};
} | {
event: 'participant/mic-update';
data: {
micEnabled: boolean;
micTrackId?: TrackMetadata;
participantId: string;
};
} | {
event: 'participant/screenshare-update';
data: {
screenshareEnabled: boolean;
screenshareVideoTrackId?: TrackMetadata;
screenshareAudioTrackId?: TrackMetadata;
participantId: string;
};
};
type ChatEvent = {
event: 'chat/new-message';
message: ChatMessage;
};
type CallEvent = RoomEvent | ParticipantEvent | ChatEvent;
type MediaAction = {
action: 'self/mic-update';
updates: {
micEnabled: boolean;
micTrackData?: TrackMetadata;
};
} | {
action: 'self/camera-update';
updates: {
cameraEnabled: boolean;
cameraTrackData?: TrackMetadata;
};
} | {
action: 'self/screenshare-update';
updates: {
screenshareEnabled: boolean;
screenshareVideoTrackData?: TrackMetadata;
screenshareAudioTrackData?: TrackMetadata;
};
};
type ChatAction = {
action: 'chat/message';
message: ChatMessagePayload;
};
type CallAction = {
action: 'join';
self: SerializedUser;
} | {
action: 'leave';
} | MediaAction | ChatAction;
declare class CallSocket extends PartySocket {
#private;
constructor(options: PartySocketOptions & {
logger: Logger;
});
sendAction(action: CallAction): void;
}
declare function createCallClient(options: CallClientOptions): Promise<CallClient>;
export { type CallAction, CallClient, CallClientOptions, type CallEvent, CallSocket, ChatMessage, ChatMessagePayload, SerializedUser, createCallClient };