## Beta API Report File for "@fluidframework/core-utils"

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

```ts

// @beta @deprecated @legacy (undocumented)
export const assert: (condition: boolean, message: string | number, debugMessageBuilder?: () => string) => asserts condition;

// @beta @legacy
export const compareArrays: <T>(left: readonly T[], right: readonly T[], comparator?: (leftItem: T, rightItem: T, index: number) => boolean) => boolean;

// @beta @legacy
export class Deferred<T> {
    constructor();
    get isCompleted(): boolean;
    get promise(): Promise<T>;
    reject(error: any): void;
    resolve(value: T | PromiseLike<T>): void;
}

// @beta @legacy
export class LazyPromise<T> implements Promise<T> {
    // (undocumented)
    get [Symbol.toStringTag](): string;
    constructor(execute: () => Promise<T>);
    // (undocumented)
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null | undefined): Promise<T | TResult>;
    // (undocumented)
    finally(onfinally?: (() => void) | null | undefined): Promise<T>;
    // (undocumented)
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined): Promise<TResult1 | TResult2>;
}

// @beta
export function onAssertionFailure(handler: (error: Error) => void): () => void;

// @beta @legacy
export class PromiseCache<TKey, TResult> {
    constructor(input?: PromiseCacheOptions);
    add(key: TKey, asyncFn: () => Promise<TResult>): boolean;
    addOrGet(key: TKey, asyncFn: () => Promise<TResult>): Promise<TResult>;
    addValue(key: TKey, value: TResult): boolean;
    addValueOrGet(key: TKey, value: TResult): Promise<TResult>;
    get(key: TKey): Promise<TResult> | undefined;
    has(key: TKey): boolean;
    remove(key: TKey): boolean;
}

// @beta @legacy
export type PromiseCacheExpiry = {
    policy: "indefinite";
} | {
    policy: "absolute" | "sliding";
    durationMs: number;
};

// @beta @legacy
export interface PromiseCacheOptions {
    expiry?: PromiseCacheExpiry;
    removeOnError?: (error: any) => boolean;
}

// (No @packageDocumentation comment for this package)

```
