import { Jovo, AnyObject } from '@jovotech/framework';
import { PlayFabPluginConfig, ProfileInfo } from './PlayFabPlugin';
export declare enum LoginStatus {
    NewUser = "newUser",
    ExistingUser = "existingUser",
    Error = "error"
}
export declare enum UserDataPermission {
    Private = "Private",
    Public = "Public"
}
export interface UserDataRecord {
    LastUpdated: string;
    Permission?: string;
    Value?: string;
}
export declare class JovoPlayFab {
    readonly config: PlayFabPluginConfig;
    readonly jovo: Jovo;
    constructor(config: PlayFabPluginConfig, jovo: Jovo);
    get PlayFabServer(): PlayFabServerModule.IPlayFabServer;
    get PlayFabAdmin(): PlayFabAdminModule.IPlayFabAdmin;
    get PlayFabId(): string;
    init(): void;
    login(): Promise<void>;
    updateProfile(profile: ProfileInfo): Promise<boolean>;
    updateStat(statName: string, value: number): Promise<boolean>;
    getStat(statName: string): Promise<number | null>;
    getLeaderboard(statName: string): Promise<PlayFabServerModels.PlayerLeaderboardEntry[] | null>;
    updateUserData(data: AnyObject, permission?: UserDataPermission): Promise<boolean>;
    getUserData(keys: string | string[], playFabId?: string): Promise<AnyObject | null>;
    private stringifyValues;
    private parseUserDataRecords;
    private isJson;
}
