import { TargetEnv } from "../types/environment.js";
import { Tokens } from "../types/login.js";
import { AuthService } from "./auth.service.js";
export interface IVault {
    deletePassword: (serviceName: string, account: string) => Promise<void>;
    getPassword: (serviceName: string, account: string) => Promise<null | string>;
    setPassword: (serviceName: string, account: string, password: string) => Promise<void>;
}
export declare class KeytarVault implements IVault {
    deletePassword(serviceName: string, account: string): Promise<void>;
    getPassword(serviceName: string, account: string): Promise<null | string>;
    setPassword(serviceName: string, account: string, password: string): Promise<void>;
}
export declare class VaultService {
    private readonly authService;
    private readonly vault;
    private readonly serviceName;
    constructor(authService?: AuthService, vault?: IVault);
    deleteTokensFromVault(env: TargetEnv): Promise<void>;
    getLoggedInUserSub(env: TargetEnv): Promise<string | undefined>;
    getTokensFromFile(env: TargetEnv): Tokens | undefined;
    tryGetTokensFromVault(env: TargetEnv): Promise<Tokens | null>;
    getTokensFromVault(env: TargetEnv): Promise<Tokens>;
    refreshTokens(env: TargetEnv, accessToken: string, refreshToken: string): Promise<Tokens | undefined>;
    storeTokensInFile(env: TargetEnv, tokens: null | Tokens): void;
    storeTokensToVault({ accessToken, refreshToken }: Tokens, env: TargetEnv): Promise<void>;
    supernovaDir(): string;
    tokensFilePath(): string;
}
//# sourceMappingURL=vault.service.d.ts.map