Erster Commit
This commit is contained in:
+85
@@ -0,0 +1,85 @@
|
||||
import { TrackSource, RoomConfiguration } from '@livekit/protocol';
|
||||
import { JWTPayload } from 'jose';
|
||||
|
||||
declare function trackSourceToString(source: TrackSource): "camera" | "microphone" | "screen_share" | "screen_share_audio";
|
||||
declare function claimsToJwtPayload(grant: ClaimGrants): JWTPayload & {
|
||||
video?: Record<string, unknown>;
|
||||
};
|
||||
interface VideoGrant {
|
||||
/** permission to create a room */
|
||||
roomCreate?: boolean;
|
||||
/** permission to join a room as a participant, room must be set */
|
||||
roomJoin?: boolean;
|
||||
/** permission to list rooms */
|
||||
roomList?: boolean;
|
||||
/** permission to start a recording */
|
||||
roomRecord?: boolean;
|
||||
/** permission to control a specific room, room must be set */
|
||||
roomAdmin?: boolean;
|
||||
/** name of the room, must be set for admin or join permissions */
|
||||
room?: string;
|
||||
/** permissions to control ingress, not specific to any room or ingress */
|
||||
ingressAdmin?: boolean;
|
||||
/**
|
||||
* allow participant to publish. If neither canPublish or canSubscribe is set,
|
||||
* both publish and subscribe are enabled
|
||||
*/
|
||||
canPublish?: boolean;
|
||||
/**
|
||||
* TrackSource types that the participant is allowed to publish
|
||||
* When set, it supersedes CanPublish. Only sources explicitly set here can be published
|
||||
*/
|
||||
canPublishSources?: TrackSource[];
|
||||
/** allow participant to subscribe to other tracks */
|
||||
canSubscribe?: boolean;
|
||||
/**
|
||||
* allow participants to publish data, defaults to true if not set
|
||||
*/
|
||||
canPublishData?: boolean;
|
||||
/**
|
||||
* by default, a participant is not allowed to update its own metadata
|
||||
*/
|
||||
canUpdateOwnMetadata?: boolean;
|
||||
/** participant isn't visible to others */
|
||||
hidden?: boolean;
|
||||
/** participant is recording the room, when set, allows room to indicate it's being recorded */
|
||||
recorder?: boolean;
|
||||
/** participant allowed to connect to LiveKit as Agent Framework worker */
|
||||
agent?: boolean;
|
||||
/** allow participant to subscribe to metrics */
|
||||
canSubscribeMetrics?: boolean;
|
||||
/** allow participant to manage an agent session via RemoteSession */
|
||||
canManageAgentSession?: boolean;
|
||||
/** destination room which this participant can forward to */
|
||||
destinationRoom?: string;
|
||||
}
|
||||
interface SIPGrant {
|
||||
/** manage sip resources */
|
||||
admin?: boolean;
|
||||
/** make outbound calls */
|
||||
call?: boolean;
|
||||
}
|
||||
interface InferenceGrant {
|
||||
/** perform inference */
|
||||
perform?: boolean;
|
||||
}
|
||||
interface ObservabilityGrant {
|
||||
/** write grants to publish observability data */
|
||||
write?: boolean;
|
||||
}
|
||||
/** @internal */
|
||||
interface ClaimGrants extends JWTPayload {
|
||||
name?: string;
|
||||
video?: VideoGrant;
|
||||
sip?: SIPGrant;
|
||||
inference?: InferenceGrant;
|
||||
observability?: ObservabilityGrant;
|
||||
kind?: string;
|
||||
metadata?: string;
|
||||
attributes?: Record<string, string>;
|
||||
sha256?: string;
|
||||
roomPreset?: string;
|
||||
roomConfig?: RoomConfiguration;
|
||||
}
|
||||
|
||||
export { type ClaimGrants, type InferenceGrant, type ObservabilityGrant, type SIPGrant, type VideoGrant, claimsToJwtPayload, trackSourceToString };
|
||||
Reference in New Issue
Block a user