import type { Arr, Merged } from '@toolbox-ts/types/defs/array'; import type { AnyDefined, DefinedPrimitive } from '@toolbox-ts/types'; import type { StringRecord } from '@toolbox-ts/types/defs/object'; import type { CombineOptions } from './types.js'; export declare const mergeConcat: (a: A, b: B) => Merged; export declare const mergePrepend: (a: A, b: B) => Merged; export interface MergeUniqueOpts { keyFn?: (item: Merged[number]) => K; end?: 'concat' | 'prepend'; } export declare const mergeUnique: (a: A, b: B, { end, keyFn }?: MergeUniqueOpts) => Merged; export interface CombineHandlers { primitive: (curr: AnyDefined, next: DefinedPrimitive) => unknown; array: (curr: Arr, next: Arr) => unknown; object: (curr: StringRecord, next: StringRecord) => unknown; objectType: (curr: AnyDefined, next: object) => unknown; } export declare const mergeCombine: (a: A, b: B, { handlers: handle, clone: cl }?: CombineOptions) => R;