/*---------------------------------------------------------------------------------------------
 *  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 '@sussudio/base/common/event.mjs';
export declare const ICredentialsService: import('../../instantiation/common/instantiation.mjs').ServiceIdentifier<ICredentialsService>;
export interface ICredentialsProvider {
	getPassword(service: string, account: string): Promise<string | null>;
	setPassword(service: string, account: string, password: string): Promise<void>;
	deletePassword(service: string, account: string): Promise<boolean>;
	findPassword(service: string): Promise<string | null>;
	findCredentials(service: string): Promise<
		Array<{
			account: string;
			password: string;
		}>
	>;
	clear?(): Promise<void>;
}
export interface ICredentialsChangeEvent {
	service: string;
	account: string;
}
export interface ICredentialsService extends ICredentialsProvider {
	readonly _serviceBrand: undefined;
	readonly onDidChangePassword: Event<ICredentialsChangeEvent>;
	getSecretStoragePrefix(): Promise<string>;
}
export declare const ICredentialsMainService: import('../../instantiation/common/instantiation.mjs').ServiceIdentifier<ICredentialsMainService>;
export interface ICredentialsMainService extends ICredentialsService {}
export declare class InMemoryCredentialsProvider implements ICredentialsProvider {
	private secretVault;
	getPassword(service: string, account: string): Promise<string | null>;
	setPassword(service: string, account: string, password: string): Promise<void>;
	deletePassword(service: string, account: string): Promise<boolean>;
	findPassword(service: string): Promise<string | null>;
	findCredentials(service: string): Promise<
		Array<{
			account: string;
			password: string;
		}>
	>;
	clear(): Promise<void>;
}
