/**
 * Normalize request bodies for Harness NG APIs.
 * - Strip null/undefined to avoid "Unable to process JSON" from invalid values.
 * - Unwrap common wrapper keys (environment, service, connector) when APIs expect the entity at top level.
 */
/** Recursively remove null and undefined so they are omitted from JSON. */
export declare function stripNulls(obj: unknown): unknown;
/** Return body[wrapperKey] if present, else body. Use when API expects the entity at top level. */
export declare function unwrapBody(body: unknown, wrapperKey: string): unknown;
/**
 * Options for the standardized body builder factory.
 */
export interface BodyBuilderOptions {
    /** Unwrap a wrapper key (e.g., "service", "connector", "environment") */
    unwrapKey?: string;
    /** Wrap the body under a key (e.g., "service" → {"service": {...}}). Use when API expects wrapped bodies. */
    wrapKey?: string;
    /** Auto-inject identifier from input field if missing from body */
    injectIdentifier?: {
        inputField: string;
        bodyField: string;
    };
    /** Auto-inject additional fields if missing */
    injectFields?: Array<{
        from: string;
        to: string;
        onlyIfMissing?: boolean;
    }>;
}
/**
 * Factory: returns a bodyBuilder function that handles unwrap, stripNulls, and field injection.
 * Replaces repetitive inline bodyBuilder patterns across toolsets.
 */
export declare function buildBodyNormalized(opts?: BodyBuilderOptions): (input: Record<string, unknown>) => unknown;
//# sourceMappingURL=body-normalizer.d.ts.map