import type { PropertyDeclarations, TemplateResult } from 'lit-element'; import { LitElement } from 'lit-element'; import { NucleonElement } from '../../public/NucleonElement/NucleonElement'; declare const InternalControl_base: typeof LitElement & import("lit-element").Constructor & { inferredProperties: string[]; } & { styles: import("lit-element").CSSResultArray; } & import("lit-element").Constructor & { defaultNS: string; } & import("lit-element").Constructor; /** * An internal base class for any control in a Nucleon form. That control can be as simple as a text field bound * to a property or as complex as a query builder, and it infers property values from the * parent Nucleon/Configurable/Translatable element, saving the need to manually calculate * and bind properties in Lit templates. Each control renders before and after slots in the regular DOM + its * own layout in the shadow DOM. When hidden via `hiddencontrols` in the parent, * uses `display: none` to hide itself. * * @element foxy-internal-control * @since 1.17.0 */ export declare class InternalControl extends InternalControl_base { static get inferredProperties(): string[]; static get properties(): PropertyDeclarations; /** NucleonElement instance this control is bound to. */ nucleon: NucleonElement | null; inferFromElement(key: string, element: HTMLElement): unknown | undefined; applyInferredProperties(context: Map): void; renderLightDom(): void; updated(changes: Map): void; /** * Renders the control itself. In most cases, you will need to implement * this method instead of `.render()` in your class to keep the before and after templates/slots. */ renderControl(): TemplateResult; /** * Renders the control (if visible) and the before/after templates/slots. * You should probably implement `.renderControl()` method instead of this one in your class. */ render(): TemplateResult; } export {};