declare type MergeObjectResult<X, Y> = X extends undefined ? Y extends undefined ? undefined : X : Y extends undefined ? X : {
    [K in keyof (X & Y)]: (X & Y)[K];
};
declare type FastDeepMergeType = <X = undefined, Y = undefined, O extends {
    max_stack?: number;
} = Record<string, any>>(x?: X, y?: Y, options?: O) => MergeObjectResult<X, Y>;
declare const fastDeepMerge: FastDeepMergeType;

export { FastDeepMergeType, fastDeepMerge };
