import { Injector, Block } from './injector'; import { Scope, MountBlock } from './types'; import { Component } from './component'; export declare type RenderItemsGetter = (host: Component, scope: Scope) => any[]; export interface IteratorBlock extends Block { get: RenderItemsGetter; body: MountBlock; index: number; updated: number; } /** * Mounts iterator block * @param get A function that returns collection to iterate * @param body A function that renders item of iterated collection */ export declare function mountIterator(host: Component, injector: Injector, get: RenderItemsGetter, body: MountBlock): IteratorBlock; /** * Updates iterator block defined in `ctx` * @returns Returns `1` if iterator was updated, `0` otherwise */ export declare function updateIterator(block: IteratorBlock): number; export declare function unmountIterator(block: IteratorBlock): void; export declare function clearIterator(block: IteratorBlock): void; export declare function prepareScope(scope: Scope, index: number, key: unknown, value: unknown): Scope;