polymech-astro/node_modules/fast-copy/dist/umd/options.d.ts
2025-12-28 14:50:44 +01:00

65 lines
2.5 KiB
TypeScript

import type { InternalCopier } from './copier.ts';
import type { Cache } from './utils.ts';
export interface CopierMethods {
array?: InternalCopier<any[]>;
arrayBuffer?: InternalCopier<ArrayBuffer>;
asyncGenerator?: InternalCopier<AsyncGenerator>;
blob?: InternalCopier<Blob>;
dataView?: InternalCopier<DataView>;
date?: InternalCopier<Date>;
error?: InternalCopier<Error>;
generator?: InternalCopier<Generator>;
map?: InternalCopier<Map<any, any>>;
object?: InternalCopier<Record<string, any>>;
regExp?: InternalCopier<RegExp>;
set?: InternalCopier<Set<any>>;
}
interface Copiers {
[key: string]: InternalCopier<any> | undefined;
Arguments: InternalCopier<Record<string, any>>;
Array: InternalCopier<any[]>;
ArrayBuffer: InternalCopier<ArrayBuffer>;
AsyncGenerator: InternalCopier<AsyncGenerator>;
Blob: InternalCopier<Blob>;
Boolean: InternalCopier<Boolean>;
DataView: InternalCopier<DataView>;
Date: InternalCopier<Date>;
Error: InternalCopier<Error>;
Float32Array: InternalCopier<ArrayBuffer>;
Float64Array: InternalCopier<ArrayBuffer>;
Generator: InternalCopier<Generator>;
Int8Array: InternalCopier<ArrayBuffer>;
Int16Array: InternalCopier<ArrayBuffer>;
Int32Array: InternalCopier<ArrayBuffer>;
Map: InternalCopier<Map<any, any>>;
Number: InternalCopier<Number>;
Object: InternalCopier<Record<string, any>>;
Promise: InternalCopier<Promise<any>>;
RegExp: InternalCopier<RegExp>;
Set: InternalCopier<Set<any>>;
String: InternalCopier<String>;
WeakMap: InternalCopier<WeakMap<any, any>>;
WeakSet: InternalCopier<WeakSet<any>>;
Uint8Array: InternalCopier<ArrayBuffer>;
Uint8ClampedArray: InternalCopier<ArrayBuffer>;
Uint16Array: InternalCopier<ArrayBuffer>;
Uint32Array: InternalCopier<ArrayBuffer>;
Uint64Array: InternalCopier<ArrayBuffer>;
}
export interface CreateCopierOptions {
createCache?: () => Cache;
methods?: CopierMethods;
strict?: boolean;
}
export interface RequiredCreateCopierOptions extends Omit<Required<CreateCopierOptions>, 'methods'> {
copiers: Copiers;
methods: Required<CopierMethods>;
}
export declare function createDefaultCache(): Cache;
export declare function getOptions({ createCache: createCacheOverride, methods: methodsOverride, strict, }: CreateCopierOptions): RequiredCreateCopierOptions;
/**
* Get the copiers used for each specific object tag.
*/
export declare function getTagSpecificCopiers(methods: Required<CopierMethods>): Copiers;
export {};