type CustomMethodDecorator = (target: object, propertyKey: string | symbol, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor | void; type UnionToIntersection = (U extends any ? (x: U) => void : never) extends (x: infer I) => void ? I : never; export interface ComponentDecorator { (opts?: ComponentOptions): ClassDecorator; } export interface ComponentOptions { /** * When set to `true` this component will be form-associated. See * https://stenciljs.com/docs/next/form-associated documentation on how to * build form-associated Stencil components that integrate into forms like * native browser elements such as `` and `