/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

import { IStringDictionary } from '@sussudio/base/common/collections.mjs';
import { Event } from '@sussudio/base/common/event.mjs';
import { FormattingOptions } from '@sussudio/base/common/jsonFormatter.mjs';
import { Disposable } from '@sussudio/base/common/lifecycle.mjs';
import { URI } from '@sussudio/base/common/uri.mjs';
import { IChannel, IServerChannel } from '@sussudio/base/parts/ipc/common/ipc.mjs';
import {
	IUserDataAutoSyncService,
	IUserDataSyncStore,
	IUserDataSyncStoreManagementService,
	IUserDataSyncUtilService,
	UserDataSyncStoreType,
} from './userDataSync.mjs';
import { IUserDataSyncAccountService } from './userDataSyncAccount.mjs';
import { IUserDataSyncMachinesService } from './userDataSyncMachines.mjs';
export declare class UserDataAutoSyncChannel implements IServerChannel {
	private readonly service;
	constructor(service: IUserDataAutoSyncService);
	listen(_: unknown, event: string): Event<any>;
	call(context: any, command: string, args?: any): Promise<any>;
}
export declare class UserDataSycnUtilServiceChannel implements IServerChannel {
	private readonly service;
	constructor(service: IUserDataSyncUtilService);
	listen(_: unknown, event: string): Event<any>;
	call(context: any, command: string, args?: any): Promise<any>;
}
export declare class UserDataSyncUtilServiceClient implements IUserDataSyncUtilService {
	private readonly channel;
	readonly _serviceBrand: undefined;
	constructor(channel: IChannel);
	resolveDefaultIgnoredSettings(): Promise<string[]>;
	resolveUserBindings(userbindings: string[]): Promise<IStringDictionary<string>>;
	resolveFormattingOptions(file: URI): Promise<FormattingOptions>;
}
export declare class UserDataSyncMachinesServiceChannel implements IServerChannel {
	private readonly service;
	constructor(service: IUserDataSyncMachinesService);
	listen(_: unknown, event: string): Event<any>;
	call(context: any, command: string, args?: any): Promise<any>;
}
export declare class UserDataSyncAccountServiceChannel implements IServerChannel {
	private readonly service;
	constructor(service: IUserDataSyncAccountService);
	listen(_: unknown, event: string): Event<any>;
	call(context: any, command: string, args?: any): Promise<any>;
}
export declare class UserDataSyncStoreManagementServiceChannel implements IServerChannel {
	private readonly service;
	constructor(service: IUserDataSyncStoreManagementService);
	listen(_: unknown, event: string): Event<any>;
	call(context: any, command: string, args?: any): Promise<any>;
}
export declare class UserDataSyncStoreManagementServiceChannelClient extends Disposable {
	private readonly channel;
	readonly onDidChangeUserDataSyncStore: Event<void>;
	constructor(channel: IChannel);
	switch(type: UserDataSyncStoreType): Promise<void>;
	getPreviousUserDataSyncStore(): Promise<IUserDataSyncStore>;
	private revive;
}
