import { TeardownManager, Binding, ObservableArray, type Subscription } from "@akala/core"; import { Control } from "./shared.js"; export type Bound = { [key in keyof T]: Binding; }; export type MaybeBound = { [key in keyof T]: Binding | T[key]; }; export declare class Each extends Control<{ each: Array | ObservableArray; [Each.indexPropertyNameAttribute]: keyof TOption; [Each.itemPropertyNameAttribute]: keyof TOption; }> { static readonly itemPropertyNameAttribute = "item-property-name"; static readonly indexPropertyNameAttribute = "index-property-name"; static readonly defaultItemPropertyName = "item"; static readonly defaultIndexPropertyName = "$index"; each: Binding | ObservableArray>; template: Element | DocumentFragment; get indexPropertyName(): keyof TOption; get itemPropertyName(): keyof TOption; private readonly options; connectedCallback(): void; static applyTemplate(self: { root: Element | DocumentFragment; indexPropertyName: TOptionIndex; options?: ObservableArray>; itemPropertyName: TOptionItem; optionsExtend?: (option: Bound) => void; each: Binding | ObservableArray>; template: Binding | Element | DocumentFragment | ((option: Bound) => Binding | Element | DocumentFragment); container: Element; teardownManager: TeardownManager; }): Subscription; }