import { type IContainer } from '@aurelia/kernel'; import { ForOfStatement, type IsBindingBehavior } from '@aurelia/expression-parser'; import { type Collection, CollectionObserver, type IndexMap } from '@aurelia/runtime'; import { CustomAttributeStaticAuDefinition } from '../custom-attribute'; import type { ISyntheticView, ICustomAttributeController, ICustomAttributeViewModel, IHydratedController, IHydratedParentController, ControllerVisitor } from '../../templating/controller'; type Items = C | undefined; export declare class Repeat implements ICustomAttributeViewModel { static readonly $au: CustomAttributeStaticAuDefinition; views: ISyntheticView[]; forOf: ForOfStatement; local: string; readonly $controller: ICustomAttributeController; items: Items; key: null | string | IsBindingBehavior; contextual: boolean; constructor(); binding(_initiator: IHydratedController, _parent: IHydratedParentController): void | Promise; attaching(initiator: IHydratedController, _parent: IHydratedParentController): void | Promise; detaching(initiator: IHydratedController, _parent: IHydratedParentController): void | Promise; unbinding(_initiator: IHydratedController, _parent: IHydratedParentController): void | Promise; itemsChanged(): void; handleCollectionChange(collection: Collection, indexMap: IndexMap | undefined): void; dispose(): void; accept(visitor: ControllerVisitor): void | true; } export declare const IRepeatableHandlerResolver: import("@aurelia/kernel").InterfaceSymbol; /** * An interface describings the capabilities of a repeatable handler. */ export interface IRepeatableHandlerResolver { resolve(value: unknown): IRepeatableHandler; } /** * A simple implementation for handling common array like values, such as: * - HTMLCollection * - NodeList * - FileList, * - etc... */ export declare class ArrayLikeHandler implements IRepeatableHandler> { static register(c: IContainer): void; handles(value: NonNullable): boolean; iterate(items: ArrayLike, func: (item: unknown, index: number, arr: ArrayLike) => void): void; } /** * An interface describing a repeatable value handler */ export declare const IRepeatableHandler: import("@aurelia/kernel").InterfaceSymbol>; export interface IRepeatableHandler { handles(value: unknown): boolean; getObserver?(value: TValue): CollectionObserver | undefined; iterate(value: TValue, func: (item: unknown, index: number, value: TValue) => void): void; } type Repeatable = Collection | ArrayLike | number | null | undefined; export {}; //# sourceMappingURL=repeat.d.ts.map