import { Binding } from "@akala/core"; import { type WebComponent } from "../common.js"; import { TeardownManager } from '@akala/core'; export declare class Control = Record, TElement extends Element = Element> extends TeardownManager implements Partial { protected readonly element: TElement; constructor(element: TElement); protected requiresAncestor(ctor: new (element: TElement) => T): T; protected optionalAncestor(ctor: new (element: TElement) => T): T; protected readonly attributeBindings: { [key in keyof TBindings]: Binding; }; protected readonly bindings: { [key in keyof TBindings]: Binding; }; protected shadowWithStyles(options: ShadowRootInit): ShadowRoot; protected inheritStylesheets(shadow: ShadowRoot): void; attribute(name: string): string; attribute(name: string, value: string): this; attribute(record: Record): this; attribute(record: string[]): string[]; attribute(name: string | string[] | Record, value?: string | null): any; attributeChangedCallback(name: TKey, oldValue: string, newValue: string): void; bindAttribute>(attributeName: TKey): Binding; bind>(attributeName: TKey, error: Error): Binding; bind>(attributeName: TKey): Binding | null; connectedCallback(): void; disconnectedCallback(): void; static nearest(node: Element, selector: string): Element; }