import type { Constructor } from '@apollo-elements/interfaces'; import { ApolloElementElement } from '@apollo-elements/interfaces/apollo-element'; declare type Type = 'client' | 'subscription' | 'mutation' | 'query'; export declare function getDescriptor(host: T): PropertyDescriptorMap; /** * Applies a class' prototype to an element, mixing in the class' properties and methods to the element instance. * * @param host Element to apply prototype properties to. * @param klass Class whose prototype to apply to the host element. * @param type Hint about what kind of class/host pair is in question. * @param effects function that will run the first time this element has a class prototype mixed in via this helper. * @return Combined `PropertyDescriptorMap` for the instance. */ export declare function applyPrototype>(// eslint-disable-line @typescript-eslint/no-explicit-any host: T, klass: Constructor | typeof ApolloElementElement, type: Type, effects?: (host: T) => void): PropertyDescriptorMap; export {};