import type { Entity, Dirty } from "./Entity"; import type { State } from "./States"; import { EventDispatcher, Events } from "./EventDispatcher"; import { IDisposer } from "./Disposer"; export declare class TemplateState { _settings: Partial; private _name; private _template; constructor(name: string, template: Template, settings: Partial); _dispose(): void; get(key: Key): this["_settings"][Key]; get(key: Key, fallback: F): NonNullable | F; set(key: Key, value: E["_settings"][Key]): void; remove(key: Key): void; setAll(settings: this["_settings"]): void; _apply(other: State, seen: Dirty): void; } export declare class TemplateStates { private _template; private _states; constructor(template: Template); _dispose(): void; lookup(name: string): TemplateState | undefined; create(name: string, settings: Partial): TemplateState; remove(name: string): void; _apply(entity: E, state: ApplyState): void; } export declare class TemplateAdapters { private _callbacks; add(key: Key, callback: (value: E["_settings"][Key], target: E, key: Key) => E["_settings"][Key]): IDisposer; remove(key: Key): void; _apply(entity: E): IDisposer; } export interface ApplyState { settings: Dirty; privateSettings: Dirty; states: { [name: string]: Dirty; }; } export declare class Template implements IDisposer { private _disposed; _settings: Partial; _privateSettings: E["_privateSettings"]; _settingEvents: { [K in keyof this["_settings"]]?: Array<((value: V) => void)>; }; _privateSettingEvents: { [K in keyof this["_settings"]]?: Array<((value: V) => void)>; }; _entities: Array; readonly states: TemplateStates; readonly adapters: TemplateAdapters; readonly events: EventDispatcher>; setup: ((entity: O) => void) | undefined; /** * Use this method to create an instance of this class. * * @see {@link https://www.amcharts.com/docs/v5/getting-started/#New_element_syntax} for more info * @param root Root element * @param settings Settings * @param template Template * @return Instantiated object */ static new(settings: E["_settings"]): Template; protected _dispose(): void; /** * Returns `true` if this element is disposed. * * @return Disposed */ isDisposed(): boolean; /** * Disposes this object. */ dispose(): void; private _checkDisposed; /** * Array of all entities using this template. */ get entities(): Array; constructor(settings: E["_settings"], isReal: boolean); get(key: Key): this["_settings"][Key]; get(key: Key, fallback: F): NonNullable | F; setRaw(key: Key, value: this["_settings"][Key]): void; set(key: Key, value: this["_settings"][Key]): void; remove(key: Key): void; removeAll(): void; getPrivate(key: Key, fallback: F): NonNullable | F; getPrivate(key: Key): this["_privateSettings"][Key]; setPrivateRaw(key: Key, value: Value): Value; setPrivate(key: Key, value: Value): Value; removePrivate(key: Key): void; setAll(value: this["_settings"]): void; on(key: Key, callback: (value: this["_settings"][Key], target?: E, key?: Key) => void): IDisposer; onPrivate(key: Key, callback: (value: this["_privateSettings"][Key], target?: E, key?: Key) => void): IDisposer; _apply(entity: E, state: ApplyState): IDisposer; _setObjectTemplate(entity: E): void; _removeObjectTemplate(entity: E): void; _stateChanged(name: string): void; } //# sourceMappingURL=Template.d.ts.map