export namespace defaultJsonTokenCachePaths {
    let win32: string[];
    let linux: string[];
    let darwin: string[];
}
export function JsonCredentialManager(credentialCacheDir: any, timeoutMs?: number): void;
export class JsonCredentialManager {
    constructor(credentialCacheDir: any, timeoutMs?: number);
    hashKey: (key: any) => string;
    getTokenDirCandidates: () => ({
        folder: any;
        subfolders: never[];
    } | {
        folder: string | undefined;
        subfolders: string[];
    })[];
    createCacheDir: (cacheDir: any) => Promise<void>;
    tryTokenDir: (dir: any, subDirs: any) => Promise<boolean>;
    getTokenDir: () => Promise<string | null>;
    getTokenFilePath: () => Promise<string>;
    readJsonCredentialFile: (fileHandle: any) => Promise<any>;
    removeStale: (file: any) => Promise<void>;
    lockFile: (filename: any) => Promise<boolean>;
    unlockFile: (filename: any) => Promise<void>;
    withFileLocked: (fun: any) => Promise<any>;
    write: (key: any, token: any) => Promise<null | undefined>;
    read: (key: any) => Promise<any>;
    remove: (key: any) => Promise<null | undefined>;
}
