import * as akala from '@akala/core'; import { IControlInstance } from './controls/controls.js'; export interface templateFunction { (target: unknown, parent: HTMLElement): Promise[]>; hotReplace(markup: string): void; } interface Composer { selector: string; optionName: string; apply(items: HTMLElement, data: any, options?: TOptions): Promise[]>; } export declare function composer(selector: string, optionName: string): ClassDecorator; export declare function composer(selector: (new () => Composer)): any; export declare function composer(selector: Composer): any; export declare class Template { private interpolator; private http; static composers: Composer[]; constructor(interpolator: akala.Interpolate, http: akala.Http); enableHotReplacement: boolean; get(t: string | PromiseLike, registerTemplate?: boolean): Promise; static buildElements(string: any): ArrayLike; build(markup: string): templateFunction; static composeAll(items: ArrayLike, data: any, root?: Element, options?: { [key: string]: unknown; }): Promise[]>; static compose(composer: Composer, items: ArrayLike, data: any, root?: Element, options?: unknown): Promise[]>; } export declare function filter(items: ArrayLike, filter: string): T[]; export {};