import type { Passthrough } from '../types';
export type MergedPassthrough
> = {
body: TBody;
headers: Record;
query: Record;
};
export declare function mergePassthrough>(connectorBody: TBody, connectorHeaders?: Record, passthrough?: Passthrough, connectorQuery?: Record): MergedPassthrough;
/**
* Merge `override` headers over `base` headers where `override` ALWAYS wins,
* case-insensitively — used where connector-signed headers (SES SigV4: Host,
* X-Amz-Date, X-Amz-Content-Sha256, Authorization, X-Amz-Security-Token) are
* applied on top of already-merged passthrough headers. A case-variant of a
* signed header carried in `base` (e.g. a passthrough lowercase `authorization`)
* is removed so it cannot produce a comma-joined duplicate with the signed
* `Authorization`. Returns a plain object (not a `Headers` instance) so callers
* that pass it straight to `fetch` keep their existing wire shape.
*/
export declare function mergeHeaders(base: Record, override: Record): Record;
/**
* Recursively merge plain objects, `source` winning at the leaves. Arrays and
* non-plain values replace rather than merge; `undefined` in `source` is
* skipped so it never erases a connector-set value.
*/
export declare function deepMergeBody(target: Record, source: Record): Record;