declare namespace rfdc { interface Options { proto?: boolean; circles?: boolean; constructorHandlers?: ConstructorHandlerConfig[]; } } type Constructor = {new(...args: any[]): T}; type ConstructorHandlerConfig = [Constructor, (o: T) => T]; declare function rfdc(options?: rfdc.Options): (input: T) => T; export = rfdc;