TypeScript Types
Complete type definitions exported from the Talker SDK package.
Importing Types
TypeScript
import type {
// User types
Platform,
CreateUserConfig,
SetUserConfig,
UserData,
UserInfo,
// Channel types
ChannelType,
CreateChannelConfig,
ChannelParticipant,
Channel,
// Event types
BroadcastStartEvent,
BroadcastEndEvent,
ConnectionChangeEvent,
ConnectionStatus,
NewChannelEvent,
RoomNameUpdateEvent,
ParticipantAddedEvent,
ParticipantRemovedEvent,
AdminAddedEvent,
AdminRemovedEvent,
NewSdkUserEvent,
MessageEvent,
PlaybackProgressEvent,
// PTT result types
StartTalkingResult,
StartTalkingResultCode,
// Config types
TalkerAdminConfig,
TalkerClientConfig,
LoggerConfig,
// Credentials
CredentialsData,
WebRTCCredentials,
} from '@talker-network/talker-sdk';
User Types
Platform
TypeScript
type Platform = 'WEB' | 'ANDROID' | 'IOS';
CreateUserConfig
TypeScript
interface CreateUserConfig {
name: string; // Required: Display name
platform?: Platform; // Optional: Platform identifier
fcmToken?: string; // Optional: Firebase Cloud Messaging token
}
SetUserConfig
TypeScript
interface SetUserConfig {
userId: string; // Required: Existing user ID
platform?: Platform; // Optional: Platform identifier
fcmToken?: string; // Optional: Firebase Cloud Messaging token
}
UserData
TypeScript
interface UserData {
userId: string;
name: string;
userAuthToken: string; // Pass to TalkerClient
aUsername: string; // Pass to TalkerClient
aPassword: string; // Pass to TalkerClient
}
UserInfo
TypeScript
interface UserInfo {
id: string;
name: string;
platform: string;
}
Channel Types
ChannelType
TypeScript
type ChannelType = 'group' | 'direct';
CreateChannelConfig
TypeScript
interface CreateChannelConfig {
name: string; // Required: Channel name
participants: string[]; // Required: Array of user IDs
workspaceId: string; // Required: Workspace ID
type?: ChannelType; // Optional: 'group' | 'direct'
}
ChannelParticipant
TypeScript
interface ChannelParticipant {
id: string;
name: string;
isAdmin: boolean;
}
Channel
TypeScript
interface Channel {
channelId: string;
channelName: string;
channelType: ChannelType;
participants: ChannelParticipant[];
}
Event Types
ConnectionStatus
TypeScript
type ConnectionStatus = 'connected' | 'connecting' | 'disconnected';
ConnectionChangeEvent
TypeScript
interface ConnectionChangeEvent {
connected: boolean;
status: ConnectionStatus;
}
BroadcastStartEvent
TypeScript
interface BroadcastStartEvent {
channelId: string;
senderId: string;
senderName: string;
messageId?: string;
timestamp: number;
}
BroadcastEndEvent
TypeScript
interface BroadcastEndEvent {
channelId: string;
senderId: string;
timestamp: number;
}
PlaybackProgressEvent
TypeScript
interface PlaybackProgressEvent {
duration: number; // seconds elapsed
}
NewChannelEvent
TypeScript
interface NewChannelEvent {
channel: {
channelId: string;
channelName: string;
channelType: ChannelType;
};
timestamp: number;
}
RoomNameUpdateEvent
TypeScript
interface RoomNameUpdateEvent {
channelId: string;
newName: string;
timestamp: number;
}
ParticipantAddedEvent
TypeScript
interface ParticipantAddedEvent {
channelId: string;
userId: string;
userName: string;
timestamp: number;
}
ParticipantRemovedEvent
TypeScript
interface ParticipantRemovedEvent {
channelId: string;
userId: string;
timestamp: number;
}
AdminAddedEvent / AdminRemovedEvent
TypeScript
interface AdminAddedEvent {
channelId: string;
userId: string;
timestamp: number;
}
interface AdminRemovedEvent {
channelId: string;
userId: string;
timestamp: number;
}
NewSdkUserEvent
TypeScript
interface NewSdkUserEvent {
userId: string;
userName: string;
timestamp: number;
}
MessageEvent
TypeScript
interface MessageEvent {
message: {
messageId: string;
channelId: string;
senderId: string;
senderName: string;
type: string;
text?: string;
mediaUrl?: string;
timestamp: string;
};
}
PTT Types
StartTalkingResultCode
TypeScript
type StartTalkingResultCode =
| 'success'
| 'already_talking'
| 'not_connected'
| 'no_user_id'
| 'error';
StartTalkingResult
TypeScript
interface StartTalkingResult {
success: boolean;
code: StartTalkingResultCode;
message: string;
}
Configuration Types
TalkerAdminConfig
TypeScript
interface TalkerAdminConfig {
sdkKey: string; // Required: SDK key
baseUrl?: string; // Optional: API base URL
}
TalkerClientConfig
TypeScript
interface TalkerClientConfig {
userAuthToken: string; // Required: From backend
userId: string; // Required: From backend
a_username: string; // Required: From backend
a_password: string; // Required: From backend
baseUrl?: string; // Optional: API base URL
socketUrl?: string; // Optional: Socket.IO URL
loggerConfig?: LoggerConfig;
}
LoggerConfig
TypeScript
interface LoggerConfig {
level?: LogLevel; // DEBUG, INFO, WARN, ERROR, OFF
enableConsole?: boolean; // Force console output
customHandler?: (entry: LogEntry) => void;
}
enum LogLevel {
TRACE = 0,
DEBUG = 1,
INFO = 2,
WARN = 3,
ERROR = 4,
OFF = 5
}
interface LogEntry {
level: LogLevel;
component: string;
event: string;
data?: any;
timestamp: Date;
}
Credentials Types
CredentialsData
TypeScript
interface CredentialsData {
workspaceId: string;
// Additional credential properties
}
WebRTCCredentials
TypeScript
interface WebRTCCredentials {
username: string;
credential: string;
urls: string[];
ttl: number;
}