import { RoomConfiguration } from '@livekit/protocol'; import { VideoGrant, InferenceGrant, SIPGrant, ObservabilityGrant, ClaimGrants } from './grants.js'; import 'jose'; interface AccessTokenOptions { /** * amount of time before expiration * expressed in seconds or a string describing a time span zeit/ms. * eg: '2 days', '10h', or seconds as numeric value */ ttl?: number | string; /** * display name for the participant, available as `Participant.name` */ name?: string; /** * identity of the user, required for room join tokens */ identity?: string; /** * custom participant metadata */ metadata?: string; /** * custom participant attributes */ attributes?: Record; } declare class AccessToken { private apiKey; private apiSecret; private grants; identity?: string; ttl: number | string; /** * Creates a new AccessToken * @param apiKey - API Key, can be set in env LIVEKIT_API_KEY * @param apiSecret - Secret, can be set in env LIVEKIT_API_SECRET */ constructor(apiKey?: string, apiSecret?: string, options?: AccessTokenOptions); /** * Adds a video grant to this token. * @param grant - */ addGrant(grant: VideoGrant): void; /** * Adds an inference grant to this token. * @param grant - */ addInferenceGrant(grant: InferenceGrant): void; /** * Adds a SIP grant to this token. * @param grant - */ addSIPGrant(grant: SIPGrant): void; /** * Adds an observability grant to this token. * @param grant - */ addObservabilityGrant(grant: ObservabilityGrant): void; get name(): string | undefined; set name(name: string); get metadata(): string | undefined; /** * Set metadata to be passed to the Participant, used only when joining the room */ set metadata(md: string); get attributes(): Record | undefined; set attributes(attrs: Record); get kind(): string | undefined; set kind(kind: string); get sha256(): string | undefined; set sha256(sha: string | undefined); get roomPreset(): string | undefined; set roomPreset(preset: string | undefined); get roomConfig(): RoomConfiguration | undefined; set roomConfig(config: RoomConfiguration | undefined); /** * @returns JWT encoded token */ toJwt(): Promise; } declare class TokenVerifier { private apiKey; private apiSecret; constructor(apiKey: string, apiSecret: string); verify(token: string, clockTolerance?: string | number): Promise; } export { AccessToken, type AccessTokenOptions, TokenVerifier };