import { EvaluationReason, Cleanup, PromiseStatus, DependentCallback, AnyAtomTemplate, LifecycleStatus } from '../../types/index.js';
import { InjectorDescriptor } from '../../utils/index.js';
import { Store } from '@zedux/core';
import { Ecosystem } from '../Ecosystem.js';
export declare abstract class AtomInstanceBase<State, TemplateType extends AnyAtomTemplate> {
    static $$typeof: symbol;
    abstract ecosystem: Ecosystem;
    abstract id: string;
    abstract status: LifecycleStatus;
    abstract promise?: Promise<any>;
    abstract store: Store<State>;
    abstract template: TemplateType;
    abstract _createdAt: number;
    abstract _injectors?: InjectorDescriptor[];
    abstract _promiseError?: Error;
    abstract _promiseStatus?: PromiseStatus;
    abstract destroy(force?: boolean): void;
    abstract _scheduleEvaluation(reason: EvaluationReason, shouldSetTimeout?: boolean): void;
    addDependent({ callback, operation, }?: {
        callback?: DependentCallback;
        operation?: string;
    }): Cleanup;
}
