import type { TreeViewAnyPluginSignature, TreeViewState } from "../models/index.js";
type Listener<T> = (value: T) => void;
export type StoreUpdater<TSignatures extends readonly TreeViewAnyPluginSignature[]> = (prevState: TreeViewState<TSignatures>) => TreeViewState<TSignatures>;
export declare class TreeViewStore<TSignatures extends readonly TreeViewAnyPluginSignature[]> {
  value: TreeViewState<TSignatures>;
  private listeners;
  constructor(value: TreeViewState<TSignatures>);
  subscribe: (fn: Listener<TreeViewState<TSignatures>>) => () => void;
  getSnapshot: () => TreeViewState<TSignatures>;
  update: (updater: StoreUpdater<TSignatures>) => void;
}
export {};