import { AnyAction } from '@dineug/r-html';
import { InjectEngineContext } from './context';
import { Unsubscribe, ValuesType } from '../internal-types';
type ListenerRecord = {
    [P in keyof InternalActionMap]: (payload: InternalActionMap[P]) => void;
};
declare const InternalActionType: {
    readonly change: "change";
};
type InternalActionType = ValuesType<typeof InternalActionType>;
type InternalActionMap = {
    [InternalActionType.change]: void;
};
export type ReplicationStore = {
    readonly value: string;
    on: (listeners: Partial<ListenerRecord>) => Unsubscribe;
    setInitialValue: (value: string) => void;
    dispatch: (actions: Array<AnyAction> | AnyAction) => void;
    dispatchSync: (actions: Array<AnyAction> | AnyAction) => void;
    destroy: () => void;
};
export declare function createReplicationStore(context: InjectEngineContext): ReplicationStore;
export {};
