import { ConventionService } from "./../services/ConventionService";
import { FileService } from "./../services/FileService";
import { ConsoleService } from "../services/ConsoleService";
import { AuthenticationService } from "../services/AuthenticationService";
import { ConfigurationFileService } from "../services/ConfigurationFileService";
import { AuthConfiguration } from "../models/configuration/AuthConfiguration";
import { JSONFormatService } from "../services/JSONFormatService";
export declare class AuthenticationManager {
    auth_service: AuthenticationService;
    console_service: ConsoleService;
    json_format_service: JSONFormatService;
    file_service: FileService;
    private conventions;
    token: string;
    email: string;
    config: AuthConfiguration;
    config_accessor: ConfigurationFileService<AuthConfiguration>;
    constructor(auth_service: AuthenticationService, console_service: ConsoleService, json_format_service: JSONFormatService, file_service: FileService, conventions: ConventionService);
    _readConfig(): void;
    hasToken(): boolean;
    setToken(token: string): void;
    setEmail(email: string): void;
    saveConfig(): void;
    requireToken(client_id: string, client_secret: string, warn?: boolean): Promise<boolean>;
    sendVerificationEmail(client_id: string, email: string): Promise<import("axios").AxiosResponse<any>>;
    getTokenFromVerification(client_id: string, email: string, code: string): Promise<string>;
}
