export interface DeepCleanConfig {
    protectedKeyPatterns?: Array<string | RegExp>;
    removeEmptyArrays?: boolean;
    removeEmptyObjects?: boolean;
    removeEmptyStrings?: boolean;
    removeKeys?: Array<string>;
    removeNulls?: boolean;
    removeUndefineds?: boolean;
}
declare type CleanableType = Record<string, any> | Array<any>;
export declare class DeepClean {
    config: DeepCleanConfig;
    constructor(config: DeepCleanConfig);
    clean(value: CleanableType): CleanableType;
    protected cleanArray(originalValue: Array<any>): Array<any>;
    protected cleanRecord(originalValue: Record<string, any>): Record<string, any>;
    isProtectedKey(key: string): boolean;
}
export {};
