import { AtomConfig, AtomValueOrFactory, AtomGenerics } from '../../types/index'; import { Ecosystem } from '../Ecosystem'; import { AtomInstance } from '../instances/AtomInstance'; export declare abstract class AtomTemplateBase> { readonly key: string; readonly _value: AtomValueOrFactory; protected readonly _config?: AtomConfig | undefined; static $$typeof: symbol; readonly dehydrate?: AtomConfig['dehydrate']; readonly flags?: string[]; readonly hydrate?: AtomConfig['hydrate']; readonly manualHydration?: boolean; readonly ttl?: number; /** * Set this to true when this atom template is a known override of another * atom template with the same key. * * This has no built-in functionality, but it allows plugins to identify * potentially problematic duplicate atom keys e.g. by hooking into the * `instanceReused` mod and logging a warning if the templates don't match and * neither is an override. */ _isOverride?: boolean; constructor(key: string, _value: AtomValueOrFactory, _config?: AtomConfig | undefined); abstract _createInstance(ecosystem: Ecosystem, id: string, params: G['Params']): InstanceType; abstract getInstanceId(ecosystem: Ecosystem, params?: G['Params']): string; }