import { type TruncationReport } from '../security/serialization.js'; export type StoreGetter = () => unknown; export type StoreSubscribe = (listener: () => void) => () => void; export type StoreRegisteredListener = (entry: [string, StoreGetter, StoreSubscribe]) => void; export declare function onStoreRegistered(listener: StoreRegisteredListener): () => void; export interface StoreLike { getState: () => unknown; subscribe: StoreSubscribe; } export declare function registerStore(name: string, source: StoreGetter | StoreLike, subscribe?: StoreSubscribe): void; export declare function unregisterStore(name: string): void; export declare function storeNames(): string[]; export declare function subscribableStores(): Array<[string, StoreGetter, StoreSubscribe]>; export declare function readStoresRaw(only?: string): Record; export declare function readStores(only?: string): Record; export declare function readStoresWithTruncation(only?: string): { stores: Record; truncation?: Record; }; export declare function markAdapterSource(store: object, source: object): void; export declare function sourceOwner(value: unknown): string | undefined;