## Beta API Report File for "@fluidframework/odsp-driver-definitions"

> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).

```ts

// @beta @legacy (undocumented)
export type CacheContentType = "snapshot" | "ops" | "snapshotWithLoadingGroupId";

// @beta @legacy (undocumented)
export interface HostStoragePolicy {
    avoidPrefetchSnapshotCache?: boolean;
    cacheCreateNewSummary?: boolean;
    // (undocumented)
    concurrentOpsBatches?: number;
    concurrentSnapshotFetch?: boolean;
    // @deprecated (undocumented)
    enableRedeemFallback?: boolean;
    // @deprecated (undocumented)
    enableShareLinkWithCreate?: boolean;
    enableSingleRequestForShareLinkWithCreate?: boolean;
    // @deprecated (undocumented)
    fetchBinarySnapshotFormat?: boolean;
    isolateSocketCache?: boolean;
    // (undocumented)
    opsBatchSize?: number;
    opsCaching?: IOpsCachingPolicy;
    sessionOptions?: ICollabSessionOptions;
    // (undocumented)
    snapshotOptions?: ISnapshotOptions;
}

// @beta @deprecated @legacy
export interface ICacheEntry extends IEntry {
    file: IFileEntry;
}

// @beta @legacy (undocumented)
export interface ICollabSessionOptions {
    displayName?: string;
    // @deprecated
    forceAccessTokenViaAuthorizationHeader?: boolean;
    // @deprecated
    unauthenticatedUserDisplayName?: string;
}

// @beta @legacy
export type IdentityType = "Consumer" | "Enterprise";

// @beta @deprecated @legacy
export interface IEntry {
    key: string;
    type: CacheContentType;
}

// @beta @deprecated @legacy (undocumented)
export interface IFileEntry {
    docId: string;
    fileVersion?: string;
    resolvedUrl: IResolvedUrl;
}

// @beta @legacy
export interface IOdspError extends Omit<IDriverErrorBase, "errorType">, IOdspErrorAugmentations {
    // (undocumented)
    readonly errorType: OdspErrorTypes;
}

// @beta @legacy (undocumented)
export interface IOdspErrorAugmentations {
    facetCodes?: string[];
    redirectLocation?: string;
    serverEpoch?: string;
}

// @beta @legacy (undocumented)
export interface IOdspResolvedUrl extends IResolvedUrl, IOdspUrlParts {
    appName?: string;
    // (undocumented)
    codeHint?: {
        containerPackageName?: string;
    };
    context?: string;
    // (undocumented)
    dataStorePath?: string;
    // (undocumented)
    endpoints: {
        snapshotStorageUrl: string;
        attachmentPOSTStorageUrl: string;
        attachmentGETStorageUrl: string;
        deltaStorageUrl: string;
    };
    fileMetadata?: {
        eTag?: string;
    };
    // (undocumented)
    fileName: string;
    // (undocumented)
    fileVersion: string | undefined;
    // (undocumented)
    hashedDocumentId: string;
    // (undocumented)
    isClpCompliantApp?: boolean;
    // (undocumented)
    odspResolvedUrl: true;
    pendingRename?: string;
    shareLinkInfo?: ShareLinkInfoType;
    // (undocumented)
    summarizer: boolean;
    // (undocumented)
    tokens: {};
    // (undocumented)
    type: "fluid";
    // (undocumented)
    url: string;
}

// @beta @legacy (undocumented)
export interface IOdspUrlParts {
    // (undocumented)
    driveId: string;
    // (undocumented)
    itemId: string;
    // (undocumented)
    siteUrl: string;
}

// @beta @legacy (undocumented)
export interface IOpsCachingPolicy {
    batchSize?: number;
    timerGranularity?: number;
    totalOpsToCache?: number;
}

// @beta @deprecated @legacy
export interface IPersistedCache {
    get(entry: ICacheEntry): Promise<any>;
    put(entry: ICacheEntry, value: any): Promise<void>;
    removeEntries(file: IFileEntry): Promise<void>;
}

// @beta @legacy
export interface IProvideSessionAwareDriverFactory {
    // (undocumented)
    readonly IRelaySessionAwareDriverFactory: IRelaySessionAwareDriverFactory;
}

// @beta @legacy
export interface IRelaySessionAwareDriverFactory extends IProvideSessionAwareDriverFactory {
    // (undocumented)
    getRelayServiceSessionInfo(resolvedUrl: IResolvedUrl): Promise<ISocketStorageDiscovery | undefined>;
}

// @beta @legacy
export interface ISensitivityLabel {
    appliedByUserEmail: string;
    assignmentMethod: string;
    sensitivityLabelId: string;
    tenantId: string;
}

// @beta @legacy
export interface ISensitivityLabelsInfo {
    labels: ISensitivityLabel[];
    timestamp: number;
}

// @beta @legacy
export interface ISharingLink extends ISharingLinkKind {
    // (undocumented)
    webUrl: string;
}

// @beta @legacy
export interface ISharingLinkKind {
    // (undocumented)
    role?: SharingLinkRole;
    // (undocumented)
    scope: SharingLinkScope;
}

// @beta @legacy (undocumented)
export interface ISnapshotOptions {
    // (undocumented)
    blobs?: number;
    // (undocumented)
    channels?: number;
    // (undocumented)
    deltas?: number;
    mds?: number;
    // (undocumented)
    timeout?: number;
}

// @beta @legacy
export interface ISocketStorageDiscovery {
    // (undocumented)
    deltaStorageUrl: string;
    deltaStreamSocketUrl: string;
    // (undocumented)
    id: string;
    refreshSessionDurationSeconds?: number;
    // (undocumented)
    runtimeTenantId?: string;
    sensitivityLabelsInfo?: ISensitivityLabelsInfo;
    // (undocumented)
    snapshotStorageUrl: string;
    socketToken?: string;
    // (undocumented)
    tenantId: string;
}

// @beta @legacy (undocumented)
export type OdspError = IOdspError | (DriverError & IOdspErrorAugmentations);

// @beta @legacy
export const OdspErrorTypes: {
    readonly invalidFileNameError: "invalidFileNameError";
    readonly snapshotTooBig: "snapshotTooBig";
    readonly fetchTimeout: "fetchTimeout";
    readonly fluidNotEnabled: "fluidNotEnabled";
    readonly cannotCatchUp: "cannotCatchUp";
    readonly serviceReadOnly: "serviceReadOnly";
    readonly blockedIPAddress: "blockedIPAddress";
    readonly genericNetworkError: "genericNetworkError";
    readonly authorizationError: "authorizationError";
    readonly fileNotFoundOrAccessDeniedError: "fileNotFoundOrAccessDeniedError";
    readonly offlineError: "offlineError";
    readonly unsupportedClientProtocolVersion: "unsupportedClientProtocolVersion";
    readonly writeError: "writeError";
    readonly fetchFailure: "fetchFailure";
    readonly fetchTokenError: "fetchTokenError";
    readonly incorrectServerResponse: "incorrectServerResponse";
    readonly fileOverwrittenInStorage: "fileOverwrittenInStorage";
    readonly deltaStreamConnectionForbidden: "deltaStreamConnectionForbidden";
    readonly locationRedirection: "locationRedirection";
    readonly fluidInvalidSchema: "fluidInvalidSchema";
    readonly fileIsLocked: "fileIsLocked";
    readonly outOfStorageError: "outOfStorageError";
    readonly genericError: "genericError";
    readonly throttlingError: "throttlingError";
    readonly usageError: "usageError";
    readonly layerIncompatibilityError: "layerIncompatibilityError";
};

// @beta @legacy (undocumented)
export type OdspErrorTypes = (typeof OdspErrorTypes)[keyof typeof OdspErrorTypes];

// @beta @legacy
export interface OdspResourceTokenFetchOptions extends TokenFetchOptions {
    driveId?: string;
    itemId?: string;
    siteUrl: string;
}

// @beta @legacy
export interface ShareLinkInfoType {
    createLink?: {
        link?: ISharingLink;
        error?: any;
        shareId?: string;
    };
    isRedemptionNonDurable?: boolean;
    sharingLinkToRedeem?: string;
}

// @beta @legacy
export enum SharingLinkRole {
    // (undocumented)
    edit = "edit",
    // (undocumented)
    view = "view"
}

// @beta @legacy
export enum SharingLinkScope {
    // (undocumented)
    anonymous = "anonymous",
    // (undocumented)
    default = "default",
    // (undocumented)
    organization = "organization",
    // (undocumented)
    users = "users"
}

// @beta @legacy
export type TokenFetcher<T> = (options: T) => Promise<string | TokenResponse | null>;

// @beta @legacy
export interface TokenFetchOptions {
    claims?: string;
    refresh: boolean;
    readonly request?: {
        url: string;
        method: "GET" | "POST" | "PATCH" | "DELETE" | "PUT";
    };
    tenantId?: string;
}

// @beta @legacy
export interface TokenResponse {
    readonly authorizationHeader?: string;
    fromCache?: boolean;
    token: string;
}

// (No @packageDocumentation comment for this package)

```
