import { Jwt } from '../auth';
interface CommonPayload {
    exp: number;
    iat?: number;
}
export declare enum UserType {
    Registered = "registered",
    Anonymous = "anon",
    Guest = "guest"
}
export interface UserPayload extends CommonPayload {
    username: string;
    verified: boolean;
    id: number;
    device_id?: string;
    impersonated_by?: number;
    permissions: CompletePermissions;
    enrollment_id?: string;
    enrolled?: boolean;
    type: UserType;
}
export type CompletePermissions = {
    [key: string]: PerOrgPermissions;
};
export type PerOrgPermissions = {
    [key: string]: string[];
};
export declare function extractOrganizersFromJwt(jwt: Jwt): string[];
/**
 * Returns a JS object representation of a Javascript Web Token from its common encoded
 * string form.
 *
 * @template T the expected shape of the parsed token
 * @param {string} token a Javascript Web Token in base64 encoded, `.` separated form
 * @returns {(T | undefined)} an object-representation of the token
 * or undefined if parsing failed
 */
export declare function getParsedJwt<T extends object = {
    [k: string]: string | number;
}>(token: string): T | undefined;
export {};
//# sourceMappingURL=jwt.d.ts.map