/** * @license * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ import type { ReactiveElement } from '../reactive-element.js'; import { type Interface } from './base.js'; export type QueryAsyncDecorator = { (proto: Interface, name: PropertyKey, descriptor?: PropertyDescriptor): void | any; , V extends Promise>(value: ClassAccessorDecoratorTarget, context: ClassAccessorDecoratorContext): ClassAccessorDecoratorResult; }; /** * A property decorator that converts a class property into a getter that * returns a promise that resolves to the result of a querySelector on the * element's renderRoot done after the element's `updateComplete` promise * resolves. When the queried property may change with element state, this * decorator can be used instead of requiring users to await the * `updateComplete` before accessing the property. * * @param selector A DOMString containing one or more selectors to match. * * See: https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelector * * ```ts * class MyElement { * @queryAsync('#first') * first: Promise; * * render() { * return html` *
*
* `; * } * } * * // external usage * async doSomethingWithFirst() { * (await aMyElement.first).doSomething(); * } * ``` * @category Decorator */ export declare function queryAsync(selector: string): QueryAsyncDecorator; //# sourceMappingURL=query-async.d.ts.map