import { LIST_BINDING_REF } from './metadata'; import { XinObject, ListBindingOptions } from './xin-types'; import { Listener } from './path-listener'; export declare class ListBinding { boundElement: Element; listTop: HTMLElement | null; listBottom: HTMLElement | null; isNamespaced: boolean; templates: Element[]; options: ListBindingOptions; itemToElement: WeakMap; private idToElement; array: any[]; private _filteredCache?; private readonly _update?; private _previousSlice?; static filterBoundObservers: WeakMap; constructor(boundElement: Element, value: any[], options?: ListBindingOptions); filteredArray(): any[]; private visibleSlice; private needle?; filter: (...args: any[]) => void; update(array?: any[], isSlice?: boolean): void; private _updateInterpolatedBuffers; } interface ListBoundElement extends Element { [LIST_BINDING_REF]?: ListBinding; } export declare const getListBinding: (boundElement: ListBoundElement, value?: any[], options?: ListBindingOptions) => ListBinding | undefined; export declare const getListInstance: (element: Element) => { element: Element; item: any; } | undefined; export declare const getListItem: (element: Element) => any; export declare const deleteListItem: (element: Element) => boolean; export declare const scrollListItemIntoView: (element: Element, item: any, options?: { position?: "start" | "middle" | "end" | "nearest"; behavior?: ScrollBehavior; }) => boolean; export {};