import type { TypeRevivers, TypeReviverMap } from "type-reviver";
import type { OptionalBoolean } from "type-tls";
import type { Copier } from "./public";
/**
 * deepCopy 函数的配置选项
 */
export interface DeepCopyOptions {
    maxDepth?: number | null | undefined;
    allOwnProps?: OptionalBoolean;
    copyFun?: OptionalBoolean;
}
export interface DeepCopy {
    /**
     * 深拷贝
     * @param value
     */
    <V>(value: V, options?: DeepCopyOptions | null | undefined, typeCopyers?: TypeRevivers<Copier> | null | undefined): V;
    /**
     * 预设的 TypeCopierMap
     */
    presetTypeCopierMap: TypeReviverMap<Copier>;
}
/**
 * 默认 Copier 的 TypeName
 */
export declare const typeNameOfDefaultCopier = "default";
export declare function createDeepCopy(presetTypeCopierMap?: TypeReviverMap<Copier> | null | undefined): DeepCopy;
export declare const defaultPresetTypeCopierMap: Map<import("type-reviver").Types, Copier<any, any>>;
export declare const deepCopy: DeepCopy;
