Alternatively you can just cleanup the config in your plugin and take the approach below:
You could do this, but that's not ideal, but users of you plugin wouldn't be able to do use multiple libraries with config extensions at the same time.
import { CollectionConfig as PayloadCollectionConfig, Field as PayloadField } from 'payload/types';
export type Field = PayloadField & { description: string };
export type CollectionConfig = Omit<PayloadCollectionConfig, 'fields'> & { fields: Field[] };
You can solve this by passing the config types as generic params, but it's a bit ugly
import { CollectionConfig as PayloadCollectionConfig, Field as PayloadField } from 'payload/types';
export type Field<BaseField extends PayloadField = PayloadField> = BaseField & { description: string };
export type CollectionConfig<BaseCollection extends PayloadCollectionConfig = PayloadCollectionConfig> = Omit<BaseCollection, 'fields'> & { fields: Field[] };