import { IClaimGrants } from '../common/ClaimGrants';
export 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 `ParticipantClient.name`
     */
    name?: string;
    /**
     * identity of the user, required for room join tokens
     */
    identity?: string;
    /**
     * custom metadata to be passed to participants
     */
    metadata?: string;
}
export 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: IClaimGrants): void;
    /**
     * Set metadata to be passed to the ParticipantClient, used only when joining the room
     */
    set metadata(md: string);
    /**
     * @returns JWT encoded token
     */
    toJwt(): string;
}
