import { ITenantConfig , ITenantCustomData } from "@fluidframework/server-services-core" ; /**
 * Interface for a git object cache
 */ export interface ICache { /**
     * Retrieves the cached entry for the given key. Or null if it doesn't exist.
     */ get < T > ( key ) : Promise < T > ; /**
     * Sets a cache value
     */ set < T > ( key , value ) : Promise < void > ; /**
     * Deletes a cache key/value pair. Returns true if the key was deleted, and false if it does not exist.
     */ delete ( key ) : Promise < boolean > ; } export interface ITenantService { /**
     * Retrieves the storage provider details for the given tenant.
     * If the provided token is invalid will return a broken promise.
     */ getTenant ( tenantId , token , includeDisabledTenant ) : Promise < ITenantConfig > ; /**
     * Removes any existing cache for the given tenant and token.
     */ deleteFromCache ( tenantId , token ) : Promise < boolean > ; } /**
 * Credentials used to access a storage provider
 */ export interface ICredentials { user : string ; password : string ; } export interface IStorage { url : string ; direct : string ; owner : string ; repository : string ; credentials : ICredentials ; } export interface ITenant { id : string ; storage : IStorage ; } /**
 * An extension of ITenantCustomData.
 * It is important to include all fields when updating tenant custom data.
 */ export interface ITenantCustomDataExternal extends ITenantCustomData { externalStorageData ? : IExternalStorage ; } export interface IExternalStorage { storageType : string ; accessInfo : IOauthAccessInfo | IConnectionString ; } export interface IConnectionString { connectionString : string ; } export interface IOauthAccessInfo { accessToken : string ; refreshToken : string ; expiresAt : string ; }