/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
import { Event } from "../../../base/common/event.mjs";
import { Disposable } from "../../../base/common/lifecycle.mjs";
import { IUserDataSyncLogService, IUserDataSyncStoreService } from "./userDataSync.mjs";
export interface IUserDataSyncAccount {
    readonly authenticationProviderId: string;
    readonly token: string;
}
export declare const IUserDataSyncAccountService: import("../../instantiation/common/instantiation.mjs").ServiceIdentifier<IUserDataSyncAccountService>;
export interface IUserDataSyncAccountService {
    readonly _serviceBrand: undefined;
    readonly onTokenFailed: Event<boolean>;
    readonly account: IUserDataSyncAccount | undefined;
    readonly onDidChangeAccount: Event<IUserDataSyncAccount | undefined>;
    updateAccount(account: IUserDataSyncAccount | undefined): Promise<void>;
}
export declare class UserDataSyncAccountService extends Disposable implements IUserDataSyncAccountService {
    private readonly userDataSyncStoreService;
    private readonly logService;
    _serviceBrand: any;
    private _account;
    get account(): IUserDataSyncAccount | undefined;
    private _onDidChangeAccount;
    readonly onDidChangeAccount: Event<IUserDataSyncAccount | undefined>;
    private _onTokenFailed;
    readonly onTokenFailed: Event<boolean>;
    private wasTokenFailed;
    constructor(userDataSyncStoreService: IUserDataSyncStoreService, logService: IUserDataSyncLogService);
    updateAccount(account: IUserDataSyncAccount | undefined): Promise<void>;
}
