declare type Primitive = string | number | bigint | boolean | undefined | symbol;
declare type PropertyStringPath<T, Prefix = ''> = {
    [K in keyof T]: K extends 'valueOf' | 'toString' ? never : T[K] extends Primitive | Array<any> ? `${string & Prefix}${string & K}` : `${string & Prefix}${string & K}` | PropertyStringPath<T[K], `${string & Prefix}${string & K}.`>;
}[keyof T];
declare function propertyStringPathFactory<T, R = string>(): (path: PropertyStringPath<T>) => R;

export { PropertyStringPath, propertyStringPathFactory };
