/** * @license * Copyright 2021 Google LLC * SPDX-License-Identifier: Apache-2.0 */ /** * A value for the `aria-haspopup` ARIA attribute. */ export declare type AriaHasPopup = 'false' | 'true' | 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog'; /** * A property decorator proxies an aria attribute to an internal node * * This decorator is only intended for use with ARIA attributes, such as `role` * and `aria-label` due to screenreader needs. * * Upon first render, `@ariaProperty` will remove the attribute from the host * element to prevent screenreaders from reading the host instead of the * internal node. * * This decorator should only be used for non-Symbol public fields decorated * with `@property`, or on a setter with an optional getter. * * @example * ```ts * class MyElement { * @ariaProperty * @property({ type: String, attribute: 'aria-label' }) * ariaLabel!: string; * } * ``` * @category Decorator * @ExportDecoratedItems */ export declare function ariaProperty(protoOrDescriptor: {}, name?: string, descriptor?: PropertyDescriptor): any;