import Requestable from '../lib/requestable';
import { Language } from '../models';
export default class Auth extends Requestable {
    fcmToken: string;
    deviceName: string;
    phoneNumber: string;
    private _accessToken;
    /**
     * Construct auth class.
     * @constructor
     * @param {string} fcmToken
     * @param {string} deviceName
     * @param {auth} accessToken - the credentials to authenticate to UzBoojking. If auth is
     *                                  not provided requests will be made unauthenticated
     * @param userId - user id of UZ account
     * @param {Language} [lang] - language
     * @param {string} [apiBase] - the base UzBooking API URL
     */
    constructor(fcmToken: string, deviceName: string, accessToken: string, userId: number | string, lang: Language, apiBase: string);
    /**
     * Send sms
     * @param {string} phoneNumber
     * @param {Function} [callback] - callback function
     * @returns {Promise<void>}
     */
    sendSms(phoneNumber: string, callback?: (error: Error, data?: object, response?: object) => any): Promise<void>;
    /**
     * Login
     * @param {string} code
     * @param {Function} [callback] - callback function
     * @returns {Promise<{access_token: string, expires_in: number}>}
     */
    login(code: string, callback?: (error: Error, data?: object, response?: object) => any): Promise<{
        access_token: string;
        expires_in: number;
    }>;
    /**
     * Refresh token
     * @param {Function} [callback] - callback function
     * @returns {Promise<{access_token: string, expires_in: number}>}
     */
    refresh(callback?: (error: Error, data?: object, response?: object) => any): Promise<{
        access_token: string;
        expires_in: number;
    }>;
    /**
     * Check if access token expired
     * @returns {Boolean} - the promise for the http request
     */
    isExpired(): boolean;
    /**
     * Get access token
     * @returns {string}
     */
    get accessToken(): string;
}
