export interface TokenParams {
    tokenId?: string;
    identity: string;
    appId: string;
    expires?: number;
    canSkipRevocationCheck?: boolean;
}
export declare abstract class Token {
    readonly tokenId: string | null;
    readonly identity: string;
    readonly appId: string;
    readonly expires: number;
    readonly access: string[];
    readonly canSkipRevocationCheck: boolean;
    constructor(params: TokenParams);
    toJSON(): any;
    data(): string;
    encodedData(): string;
    getRevocationId(): string;
    protected getPayload(): any;
    sign(privateKey: string): string;
}
export interface UserTokenParams extends TokenParams {
    isAdmin: boolean;
}
export declare class UserToken extends Token {
    readonly isAdmin: boolean;
    constructor(params: UserTokenParams);
    toJSON(): any;
}
export interface RefreshTokenParams extends TokenParams {
    isAdmin: boolean;
    isEmailConfirmed?: boolean;
}
export declare class RefreshToken extends Token {
    readonly isAdmin: boolean;
    readonly isEmailConfirmed: boolean;
    readonly access: string[];
    constructor(params: RefreshTokenParams);
    toJSON(): any;
}
export interface AccessTokenParams extends TokenParams {
    access: string[];
    path?: string;
    syncLabel?: string;
    salt?: string;
}
export declare class AccessToken extends Token {
    readonly access: string[];
    readonly path: string | undefined;
    readonly syncLabel: string;
    private readonly salt;
    constructor(params: AccessTokenParams);
    toJSON(): any;
    isAdminToken(): boolean;
}
export interface IAdminTokenParams {
    privateKey: string;
    expires?: number;
    access?: string[];
    appId?: string;
    canSkipRevocationCheck?: boolean;
}
export declare function generateAdminToken({ privateKey, expires, access, appId, canSkipRevocationCheck, }: IAdminTokenParams): string;
