declare type Obj = {
    [key: string]: any;
};
declare type Prefix = string | undefined;
declare type RecurSetObjValTypeAsStr<O extends Obj> = {
    [K in keyof O]: O[K] extends Obj ? RecurSetObjValTypeAsStr<O[K]> : string;
};
declare type RetType<O extends Obj, P extends Prefix> = {
    [K in keyof O]: O[K] extends Obj ? RecurSetObjValTypeAsStr<O[K]> : P extends undefined ? K : string;
};
export declare function keyPathMirror<T extends Obj>(obj: T): RetType<T, undefined>;
export declare function keyPathMirror<T extends Obj, P extends string>(obj: T, prefix: P): RetType<T, P>;
export {};
