import type { ApolloElementInterface } from '@apollo-elements/interfaces/apollo-element'; interface PropertyEffectOptions { /** Name of the property. */ name: keyof C; /** The property's initial value. */ init?: C[keyof C]; /** * Side effect to run when setting the property. * * @this bound to the element instance. * @param value The new value. */ onSet(this: C, value: C[keyof C]): void; } /** * Creates a `PropertyDescriptor` for a boolean property that reflects to a boolean attribute * * @param attr Attribute name */ export declare function booleanAttr(attr: string): PropertyDescriptor; /** * Creates a `PropertyDescriptor` for a property that runs a given side effect when set. * * @param options Configuration for the property: it's name, initial value, and setter side-effect. */ export declare function effect(options: PropertyEffectOptions): PropertyDescriptor; /** * Creates a `PropertyDescriptor` for an `ApolloElement`'s `document` property. */ export declare function gqlDocument(): PropertyDescriptor; /** * Creates a `PropertyDescriptor` for a writable property. * * @param init The property's initial value. */ export declare function writable(init?: unknown): PropertyDescriptor; export {};