@withstudiocms/effect
Version:
Effect-TS Utilities for Astro
502 lines (501 loc) • 30.7 kB
TypeScript
import { deepmergeCustom as _deepmergeCustomSrc, type deepmerge as _deepmergeSrc } from 'deepmerge-ts';
import { Effect } from './effect.js';
/**
* Provides a custom deep merge utility within an Effect context.
*
* This function wraps a callback that receives the internal `_deepmergeCustom` function,
* executing it within an Effect, and handling any thrown errors by wrapping them in a new Error
* with a descriptive message.
*
* @typeParam T - The return type of the callback function.
* @param fn - A callback function that receives the `_deepmergeCustom` function and returns a value of type `T`.
* @returns An Effect that attempts to execute the callback and captures any errors.
*/
export declare const deepmergeCustom: <T>(fn: (deepmerge: typeof _deepmergeCustomSrc) => T) => Effect.Effect<T, Error, never>;
/**
* Runs a function with a custom deepmerge implementation within an Effect context.
*
* @template T The return type of the provided function.
* @param fn - A function that receives the custom deepmerge function and returns a value of type T.
* @param opts - Optional deep merge options to customize the merging behavior.
* @returns An Effect that yields the result of the provided function or throws an error if the operation fails.
*
* @example
* ```typescript
* const result = yield* deepmerge((merge) => merge(obj1, obj2));
* ```
*/
export declare const deepmerge: <T>(fn: (deepmerge: typeof _deepmergeSrc) => T, opts?: Partial<Readonly<{
mergeRecords: false | (<Ts extends ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>, U extends Readonly<{
mergeFunctions: Readonly<{
mergeRecords: /*elided*/ any;
mergeArrays: <Ts_1 extends ReadonlyArray<ReadonlyArray<unknown>>, U_1 extends Readonly</*elided*/ any>>(values: Ts_1, utils: U_1, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown;
mergeMaps: <Ts_1 extends ReadonlyArray<Readonly<ReadonlyMap<unknown, unknown>>>, U_2 extends Readonly</*elided*/ any>>(values: Ts_1, utils: U_2, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown;
mergeSets: <Ts_1 extends ReadonlyArray<Readonly<ReadonlySet<unknown>>>, U_3 extends Readonly</*elided*/ any>>(values: Ts_1, utils: U_3, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown;
mergeOthers: <Ts_1 extends ReadonlyArray<unknown>, U_4 extends Readonly</*elided*/ any>>(values: Ts_1, utils: U_4, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown;
}>;
defaultMergeFunctions: import("deepmerge-ts").DeepMergeFunctionsDefaults;
metaDataUpdater: import("deepmerge-ts").MetaDataUpdater<Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}>, Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}>>;
deepmerge: <Ts_1 extends ReadonlyArray<unknown>>(...values: Ts_1) => unknown;
useImplicitDefaultMerging: boolean;
filterValues: (<Ts_1 extends ReadonlyArray<unknown>>(values: Ts_1, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown[]) | undefined;
actions: Readonly<{
defaultMerge: symbol;
skip: symbol;
}>;
}>>(values: Ts, utils: U, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown);
mergeArrays: false | (<Ts extends ReadonlyArray<ReadonlyArray<unknown>>, U_1 extends Readonly<{
mergeFunctions: Readonly<{
mergeRecords: <Ts_1 extends ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>, U extends Readonly</*elided*/ any>>(values: Ts_1, utils: U, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown;
mergeArrays: /*elided*/ any;
mergeMaps: <Ts_1 extends ReadonlyArray<Readonly<ReadonlyMap<unknown, unknown>>>, U_2 extends Readonly</*elided*/ any>>(values: Ts_1, utils: U_2, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown;
mergeSets: <Ts_1 extends ReadonlyArray<Readonly<ReadonlySet<unknown>>>, U_3 extends Readonly</*elided*/ any>>(values: Ts_1, utils: U_3, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown;
mergeOthers: <Ts_1 extends ReadonlyArray<unknown>, U_4 extends Readonly</*elided*/ any>>(values: Ts_1, utils: U_4, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown;
}>;
defaultMergeFunctions: import("deepmerge-ts").DeepMergeFunctionsDefaults;
metaDataUpdater: import("deepmerge-ts").MetaDataUpdater<Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}>, Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}>>;
deepmerge: <Ts_1 extends ReadonlyArray<unknown>>(...values: Ts_1) => unknown;
useImplicitDefaultMerging: boolean;
filterValues: (<Ts_1 extends ReadonlyArray<unknown>>(values: Ts_1, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown[]) | undefined;
actions: Readonly<{
defaultMerge: symbol;
skip: symbol;
}>;
}>>(values: Ts, utils: U_1, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown);
mergeMaps: false | (<Ts extends ReadonlyArray<Readonly<ReadonlyMap<unknown, unknown>>>, U_2 extends Readonly<{
mergeFunctions: Readonly<{
mergeRecords: <Ts_1 extends ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>, U extends Readonly</*elided*/ any>>(values: Ts_1, utils: U, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown;
mergeArrays: <Ts_1 extends ReadonlyArray<ReadonlyArray<unknown>>, U_5 extends Readonly</*elided*/ any>>(values: Ts_1, utils: U_5, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown;
mergeMaps: /*elided*/ any;
mergeSets: <Ts_1 extends ReadonlyArray<Readonly<ReadonlySet<unknown>>>, U_3 extends Readonly</*elided*/ any>>(values: Ts_1, utils: U_3, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown;
mergeOthers: <Ts_1 extends ReadonlyArray<unknown>, U_4 extends Readonly</*elided*/ any>>(values: Ts_1, utils: U_4, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown;
}>;
defaultMergeFunctions: import("deepmerge-ts").DeepMergeFunctionsDefaults;
metaDataUpdater: import("deepmerge-ts").MetaDataUpdater<Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}>, Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}>>;
deepmerge: <Ts_1 extends ReadonlyArray<unknown>>(...values: Ts_1) => unknown;
useImplicitDefaultMerging: boolean;
filterValues: (<Ts_1 extends ReadonlyArray<unknown>>(values: Ts_1, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown[]) | undefined;
actions: Readonly<{
defaultMerge: symbol;
skip: symbol;
}>;
}>>(values: Ts, utils: U_2, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown);
mergeSets: false | (<Ts extends ReadonlyArray<Readonly<ReadonlySet<unknown>>>, U_3 extends Readonly<{
mergeFunctions: Readonly<{
mergeRecords: <Ts_1 extends ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>, U extends Readonly</*elided*/ any>>(values: Ts_1, utils: U, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown;
mergeArrays: <Ts_1 extends ReadonlyArray<ReadonlyArray<unknown>>, U_5 extends Readonly</*elided*/ any>>(values: Ts_1, utils: U_5, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown;
mergeMaps: <Ts_1 extends ReadonlyArray<Readonly<ReadonlyMap<unknown, unknown>>>, U_6 extends Readonly</*elided*/ any>>(values: Ts_1, utils: U_6, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown;
mergeSets: /*elided*/ any;
mergeOthers: <Ts_1 extends ReadonlyArray<unknown>, U_4 extends Readonly</*elided*/ any>>(values: Ts_1, utils: U_4, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown;
}>;
defaultMergeFunctions: import("deepmerge-ts").DeepMergeFunctionsDefaults;
metaDataUpdater: import("deepmerge-ts").MetaDataUpdater<Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}>, Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}>>;
deepmerge: <Ts_1 extends ReadonlyArray<unknown>>(...values: Ts_1) => unknown;
useImplicitDefaultMerging: boolean;
filterValues: (<Ts_1 extends ReadonlyArray<unknown>>(values: Ts_1, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown[]) | undefined;
actions: Readonly<{
defaultMerge: symbol;
skip: symbol;
}>;
}>>(values: Ts, utils: U_3, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown);
mergeOthers: <Ts extends ReadonlyArray<unknown>, U_4 extends Readonly<{
mergeFunctions: Readonly<{
mergeRecords: <Ts_1 extends ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>, U extends Readonly</*elided*/ any>>(values: Ts_1, utils: U, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown;
mergeArrays: <Ts_1 extends ReadonlyArray<ReadonlyArray<unknown>>, U_5 extends Readonly</*elided*/ any>>(values: Ts_1, utils: U_5, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown;
mergeMaps: <Ts_1 extends ReadonlyArray<Readonly<ReadonlyMap<unknown, unknown>>>, U_6 extends Readonly</*elided*/ any>>(values: Ts_1, utils: U_6, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown;
mergeSets: <Ts_1 extends ReadonlyArray<Readonly<ReadonlySet<unknown>>>, U_7 extends Readonly</*elided*/ any>>(values: Ts_1, utils: U_7, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown;
mergeOthers: /*elided*/ any;
}>;
defaultMergeFunctions: import("deepmerge-ts").DeepMergeFunctionsDefaults;
metaDataUpdater: import("deepmerge-ts").MetaDataUpdater<Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}>, Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}>>;
deepmerge: <Ts_1 extends ReadonlyArray<unknown>>(...values: Ts_1) => unknown;
useImplicitDefaultMerging: boolean;
filterValues: (<Ts_1 extends ReadonlyArray<unknown>>(values: Ts_1, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown[]) | undefined;
actions: Readonly<{
defaultMerge: symbol;
skip: symbol;
}>;
}>>(values: Ts, utils: U_4, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown;
metaDataUpdater: import("deepmerge-ts").MetaDataUpdater<Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}>, Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}>>;
enableImplicitDefaultMerging: boolean;
filterValues: false | (<Ts extends ReadonlyArray<unknown>>(values: Ts, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown[]);
}>> | undefined) => Effect.Effect<T, Error, never>;
declare const Deepmerge_base: Effect.Service.Class<Deepmerge, "Deepmerge", {
readonly effect: Effect.Effect<{
custom: <T>(fn: (deepmerge: typeof _deepmergeCustomSrc) => T) => Effect.Effect<T, Error, never>;
merge: <T>(fn: (deepmerge: typeof _deepmergeSrc) => T, opts?: Partial<Readonly<{
mergeRecords: false | (<Ts extends ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>, U extends Readonly<{
mergeFunctions: Readonly<{
mergeRecords: /*elided*/ any;
mergeArrays: <Ts_1 extends ReadonlyArray<ReadonlyArray<unknown>>, U_1 extends Readonly</*elided*/ any>>(values: Ts_1, utils: U_1, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown;
mergeMaps: <Ts_1 extends ReadonlyArray<Readonly<ReadonlyMap<unknown, unknown>>>, U_2 extends Readonly</*elided*/ any>>(values: Ts_1, utils: U_2, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown;
mergeSets: <Ts_1 extends ReadonlyArray<Readonly<ReadonlySet<unknown>>>, U_3 extends Readonly</*elided*/ any>>(values: Ts_1, utils: U_3, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown;
mergeOthers: <Ts_1 extends ReadonlyArray<unknown>, U_4 extends Readonly</*elided*/ any>>(values: Ts_1, utils: U_4, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown;
}>;
defaultMergeFunctions: import("deepmerge-ts").DeepMergeFunctionsDefaults;
metaDataUpdater: import("deepmerge-ts").MetaDataUpdater<Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}>, Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}>>;
deepmerge: <Ts_1 extends ReadonlyArray<unknown>>(...values: Ts_1) => unknown;
useImplicitDefaultMerging: boolean;
filterValues: (<Ts_1 extends ReadonlyArray<unknown>>(values: Ts_1, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown[]) | undefined;
actions: Readonly<{
defaultMerge: symbol;
skip: symbol;
}>;
}>>(values: Ts, utils: U, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown);
mergeArrays: false | (<Ts extends ReadonlyArray<ReadonlyArray<unknown>>, U_1 extends Readonly<{
mergeFunctions: Readonly<{
mergeRecords: <Ts_1 extends ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>, U extends Readonly</*elided*/ any>>(values: Ts_1, utils: U, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown;
mergeArrays: /*elided*/ any;
mergeMaps: <Ts_1 extends ReadonlyArray<Readonly<ReadonlyMap<unknown, unknown>>>, U_2 extends Readonly</*elided*/ any>>(values: Ts_1, utils: U_2, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown;
mergeSets: <Ts_1 extends ReadonlyArray<Readonly<ReadonlySet<unknown>>>, U_3 extends Readonly</*elided*/ any>>(values: Ts_1, utils: U_3, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown;
mergeOthers: <Ts_1 extends ReadonlyArray<unknown>, U_4 extends Readonly</*elided*/ any>>(values: Ts_1, utils: U_4, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown;
}>;
defaultMergeFunctions: import("deepmerge-ts").DeepMergeFunctionsDefaults;
metaDataUpdater: import("deepmerge-ts").MetaDataUpdater<Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}>, Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}>>;
deepmerge: <Ts_1 extends ReadonlyArray<unknown>>(...values: Ts_1) => unknown;
useImplicitDefaultMerging: boolean;
filterValues: (<Ts_1 extends ReadonlyArray<unknown>>(values: Ts_1, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown[]) | undefined;
actions: Readonly<{
defaultMerge: symbol;
skip: symbol;
}>;
}>>(values: Ts, utils: U_1, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown);
mergeMaps: false | (<Ts extends ReadonlyArray<Readonly<ReadonlyMap<unknown, unknown>>>, U_2 extends Readonly<{
mergeFunctions: Readonly<{
mergeRecords: <Ts_1 extends ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>, U extends Readonly</*elided*/ any>>(values: Ts_1, utils: U, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown;
mergeArrays: <Ts_1 extends ReadonlyArray<ReadonlyArray<unknown>>, U_5 extends Readonly</*elided*/ any>>(values: Ts_1, utils: U_5, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown;
mergeMaps: /*elided*/ any;
mergeSets: <Ts_1 extends ReadonlyArray<Readonly<ReadonlySet<unknown>>>, U_3 extends Readonly</*elided*/ any>>(values: Ts_1, utils: U_3, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown;
mergeOthers: <Ts_1 extends ReadonlyArray<unknown>, U_4 extends Readonly</*elided*/ any>>(values: Ts_1, utils: U_4, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown;
}>;
defaultMergeFunctions: import("deepmerge-ts").DeepMergeFunctionsDefaults;
metaDataUpdater: import("deepmerge-ts").MetaDataUpdater<Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}>, Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}>>;
deepmerge: <Ts_1 extends ReadonlyArray<unknown>>(...values: Ts_1) => unknown;
useImplicitDefaultMerging: boolean;
filterValues: (<Ts_1 extends ReadonlyArray<unknown>>(values: Ts_1, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown[]) | undefined;
actions: Readonly<{
defaultMerge: symbol;
skip: symbol;
}>;
}>>(values: Ts, utils: U_2, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown);
mergeSets: false | (<Ts extends ReadonlyArray<Readonly<ReadonlySet<unknown>>>, U_3 extends Readonly<{
mergeFunctions: Readonly<{
mergeRecords: <Ts_1 extends ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>, U extends Readonly</*elided*/ any>>(values: Ts_1, utils: U, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown;
mergeArrays: <Ts_1 extends ReadonlyArray<ReadonlyArray<unknown>>, U_5 extends Readonly</*elided*/ any>>(values: Ts_1, utils: U_5, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown;
mergeMaps: <Ts_1 extends ReadonlyArray<Readonly<ReadonlyMap<unknown, unknown>>>, U_6 extends Readonly</*elided*/ any>>(values: Ts_1, utils: U_6, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown;
mergeSets: /*elided*/ any;
mergeOthers: <Ts_1 extends ReadonlyArray<unknown>, U_4 extends Readonly</*elided*/ any>>(values: Ts_1, utils: U_4, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown;
}>;
defaultMergeFunctions: import("deepmerge-ts").DeepMergeFunctionsDefaults;
metaDataUpdater: import("deepmerge-ts").MetaDataUpdater<Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}>, Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}>>;
deepmerge: <Ts_1 extends ReadonlyArray<unknown>>(...values: Ts_1) => unknown;
useImplicitDefaultMerging: boolean;
filterValues: (<Ts_1 extends ReadonlyArray<unknown>>(values: Ts_1, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown[]) | undefined;
actions: Readonly<{
defaultMerge: symbol;
skip: symbol;
}>;
}>>(values: Ts, utils: U_3, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown);
mergeOthers: <Ts extends ReadonlyArray<unknown>, U_4 extends Readonly<{
mergeFunctions: Readonly<{
mergeRecords: <Ts_1 extends ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>, U extends Readonly</*elided*/ any>>(values: Ts_1, utils: U, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown;
mergeArrays: <Ts_1 extends ReadonlyArray<ReadonlyArray<unknown>>, U_5 extends Readonly</*elided*/ any>>(values: Ts_1, utils: U_5, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown;
mergeMaps: <Ts_1 extends ReadonlyArray<Readonly<ReadonlyMap<unknown, unknown>>>, U_6 extends Readonly</*elided*/ any>>(values: Ts_1, utils: U_6, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown;
mergeSets: <Ts_1 extends ReadonlyArray<Readonly<ReadonlySet<unknown>>>, U_7 extends Readonly</*elided*/ any>>(values: Ts_1, utils: U_7, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown;
mergeOthers: /*elided*/ any;
}>;
defaultMergeFunctions: import("deepmerge-ts").DeepMergeFunctionsDefaults;
metaDataUpdater: import("deepmerge-ts").MetaDataUpdater<Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}>, Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}>>;
deepmerge: <Ts_1 extends ReadonlyArray<unknown>>(...values: Ts_1) => unknown;
useImplicitDefaultMerging: boolean;
filterValues: (<Ts_1 extends ReadonlyArray<unknown>>(values: Ts_1, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown[]) | undefined;
actions: Readonly<{
defaultMerge: symbol;
skip: symbol;
}>;
}>>(values: Ts, utils: U_4, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown;
metaDataUpdater: import("deepmerge-ts").MetaDataUpdater<Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}>, Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}>>;
enableImplicitDefaultMerging: boolean;
filterValues: false | (<Ts extends ReadonlyArray<unknown>>(values: Ts, meta: Readonly<{
key: PropertyKey;
parents: ReadonlyArray<Readonly<Record<PropertyKey, unknown>>>;
}> | undefined) => unknown[]);
}>> | undefined) => Effect.Effect<T, Error, never>;
}, never, never>;
}>;
/**
* Deepmerge service for effectful dependency injection.
*
* This service provides two main functionalities:
* - `custom`: A custom deep merge function.
* - `merge`: The standard deep merge function.
*
* Both functions are provided as effectful dependencies using the Effect system.
*
* @remarks
* This class extends `Effect.Service` and registers itself under the name 'Deepmerge'.
*
* @example
* ```typescript
* const deepmergeService = Effect.service(Deepmerge);
* const merged = deepmergeService.merge(obj1, obj2);
* ```
*/
export declare class Deepmerge extends Deepmerge_base {
}
export {};