import { StoreApi } from 'zustand';
import Reactotron from 'reactotron-react-js';
import ReactotronNative from 'reactotron-react-native';

type ReactotronCore = ReturnType<typeof Reactotron.configure>;
type ReactotronCoreNative = ReturnType<typeof ReactotronNative.configure>;
interface PluginConfig {
    stores: Array<{
        name: string;
        store: StoreApi<unknown>;
    }>;
    omitFunctionKeys?: boolean;
}
interface Subscription {
    name: string;
    store: StoreApi<unknown>;
    unsub: ReturnType<StoreApi<unknown>['subscribe']>;
}
interface Change {
    path: string;
    value: unknown;
}

export { Change, PluginConfig, ReactotronCore, ReactotronCoreNative, Subscription };
