export declare function assign<T, K1 extends keyof T>(obj: T, keyPath: [K1], value: T[K1]): void;
export declare function assign<T, K1 extends keyof T, K2 extends keyof NonNullable<T[K1]>>(obj: T, keyPath: [K1, K2], value: NonNullable<T[K1]>[K2]): void;
export declare function assign<T, K1 extends keyof T, K2 extends keyof NonNullable<T[K1]>, K3 extends keyof NonNullable<NonNullable<T[K1]>[K2]>>(obj: T, keyPath: [K1, K2, K3], value: NonNullable<NonNullable<T[K1]>[K2]>[K3]): void;
export declare function deleteFromJson(obj: Record<string | number, unknown>, keyPath: (string | number)[]): void;
export declare function groupObjectCountsByThreeProps(objects: any[], primaryProp: string, secondaryProp: string, tertiaryProp: string): any;
export declare function groupObjectCountsByTwoProps(objects: any[], primaryProp: string, getSecondaryProp: (obj: any) => string): any;
export declare function groupObjectCountsByProp(objects: any[], getProp: (obj: any) => string): any;
export declare function filterFalsyKeys(obj: Record<string | number, unknown>): Record<string | number, unknown>;
export declare function count2DDictionaryValues(dictionary: {
    [key: string]: {
        [key2: string]: any[];
    };
}): {
    [key: string]: {
        [key2: string]: number;
    };
};
export declare function count3DDictionaryValues(dictionary: {
    [key: string]: {
        [key2: string]: any;
    };
}, innerPropName: string): {
    [key: string]: {
        [key2: string]: number;
    };
};
