import { BlocGeneric, BlocHookDependencyArrayFn, BlocState } from 'blac';

export interface ExternalStore<B extends BlocGeneric<any, any>, S extends BlocState<B>> {
    subscribe: (onStoreChange: () => void) => () => void;
    getSnapshot: () => S;
    getServerSnapshot?: () => S;
}
declare const externalBlocStore: <B extends BlocGeneric<any, any>, S extends BlocState<B>>(bloc: B, dependencyArray: BlocHookDependencyArrayFn<InstanceType<any>>) => ExternalStore<B, S>;
export default externalBlocStore;
