type StringKeys<T> = Extract<keyof T, string>;
type RequiredKeysOfSubset<T, U extends StringKeys<T>> = {
    [K in U]: undefined extends T[K] ? never : K;
}[U];
type OptionalKeysOfSubset<T, U extends StringKeys<T>> = Exclude<U, RequiredKeysOfSubset<T, U>>;
export type TStyledPrefixAndPicker<T extends Record<string, any>, U extends StringKeys<T> = StringKeys<T>> = {
    [P in RequiredKeysOfSubset<T, U> as `$${P}`]: T[P];
} & {
    [P in OptionalKeysOfSubset<T, U> as `$${P}`]?: T[P];
};
export {};
