import { Actor, AnyStateMachine, EventFrom, SnapshotFrom } from 'xstate'; type TUnsubscribe = () => void; type TTeardown = TUnsubscribe | { unsubscribe: () => void; }; export declare abstract class BaseStateMachine, TSnapshot extends { value: EState; context: TContext; } = { value: EState; context: TContext; }> { protected readonly actor: Actor; private readonly subscriptions; private readonly stateChangeListeners; protected constructor(machine: TMachine); get state(): EState; get context(): TContext; send(event: EventFrom): void; getSnapshot(): TSnapshot; subscribe(listener: (snapshot: SnapshotFrom) => void): import('xstate').Subscription; onStateChange(listener: (state: EState) => void): () => void; stop(): void; protected addSubscription(subscription: TTeardown): TUnsubscribe; } export {};