livekit-client
Version:
JavaScript/TypeScript client SDK for LiveKit
69 lines • 3.16 kB
TypeScript
import { RoomConfiguration, TokenSourceRequest, TokenSourceResponse } from '@livekit/protocol';
import type { JWTPayload } from 'jose';
import type { ValueToSnakeCase } from '../../utils/camelToSnakeCase';
export type TokenSourceRequestObject = Required<NonNullable<ConstructorParameters<typeof TokenSourceRequest>[0]>>;
export type TokenSourceResponseObject = Required<NonNullable<ConstructorParameters<typeof TokenSourceResponse>[0]>>;
/** The `TokenSource` request object sent to the server as part of fetching a configurable
* `TokenSource` like {@link TokenSourceEndpoint}.
*
* Use this as a type for your request body if implementing a server endpoint in node.js.
*/
export type TokenSourceRequestPayload = ValueToSnakeCase<TokenSourceRequestObject>;
/** The `TokenSource` response object sent from the server as part of fetching a configurable
* `TokenSource` like {@link TokenSourceEndpoint}.
*
* Use this as a type for your response body if implementing a server endpoint in node.js.
*/
export type TokenSourceResponsePayload = ValueToSnakeCase<TokenSourceResponseObject>;
/** The payload of a LiveKit JWT token. */
export type TokenPayload = JWTPayload & {
name?: string;
metadata?: string;
attributes?: Record<string, string>;
video?: {
room?: string;
roomJoin?: boolean;
canPublish?: boolean;
canPublishData?: boolean;
canSubscribe?: boolean;
};
roomConfig?: RoomConfigurationObject;
};
export type RoomConfigurationObject = NonNullable<ConstructorParameters<typeof RoomConfiguration>[0]>;
/** A Fixed TokenSource is a token source that takes no parameters and returns a completely
* independently derived value on each fetch() call.
*
* The most common downstream implementer is {@link TokenSourceLiteral}.
*/
export declare abstract class TokenSourceFixed {
abstract fetch(): Promise<TokenSourceResponseObject>;
}
export type TokenSourceFetchOptions = {
roomName?: string;
participantName?: string;
participantIdentity?: string;
participantMetadata?: string;
participantAttributes?: {
[key: string]: string;
};
agentName?: string;
agentMetadata?: string;
};
/** A Configurable TokenSource is a token source that takes a
* {@link TokenSourceFetchOptions} object as input and returns a deterministic
* {@link TokenSourceResponseObject} output based on the options specified.
*
* For example, if options.participantName is set, it should be expected that
* all tokens that are generated will have participant name field set to the
* provided value.
*
* A few common downstream implementers are {@link TokenSourceEndpoint}
* and {@link TokenSourceCustom}.
*/
export declare abstract class TokenSourceConfigurable {
abstract fetch(options: TokenSourceFetchOptions): Promise<TokenSourceResponseObject>;
abstract fetch(options: TokenSourceFetchOptions, force?: boolean): Promise<TokenSourceResponseObject>;
}
/** A TokenSource is a mechanism for fetching credentials required to connect to a LiveKit Room. */
export type TokenSourceBase = TokenSourceFixed | TokenSourceConfigurable;
//# sourceMappingURL=types.d.ts.map