import { EntityName } from '../ValueObject/EntityName'; import { EventSourcingTestBench } from 'ts-eventsourcing/Testing'; import { DomainEventAction, DomainEventMetadata } from '../ReadModel/DomainEventAction'; import { Playhead } from '../ValueObject/Playhead'; import { List, Record } from 'immutable'; import { Identity } from 'ts-eventsourcing/ValueObject/Identity'; import { DomainEvent } from 'ts-eventsourcing/Domain/DomainEvent'; import { SerializableAction } from '../Redux/SerializableAction'; import { Reducer } from 'redux'; import { GateWayFactoryMock } from './GateWayFactoryMock'; import { ReduxReadModelTestContext } from './Context/ReduxReadModelTestContext'; export declare type StateReference = Record | ((new (...args: any[]) => Record) & Record); export declare function getDescriptiveRecordName(reference: StateReference): string; export declare class ReduxEventSourcingTestBench extends EventSourcingTestBench { static create(currentTime?: Date | string): ReduxEventSourcingTestBench; getReduxReadModelTestContext(state: State, reducer: Reducer): ReduxReadModelTestContext; createActionGatewayFactory(state: State, reducer: Reducer): GateWayFactoryMock; getActionGateway(state: State): GateWayFactoryMock; thenActionsShouldBeTransmitted(expectedActions: SerializableAction[], state?: State, options?: any): this; thenActionsShouldMatchSnapshot(state?: State, options?: any): this; createAction(modelId: ReadModelId, aggregateId: AggregateId, entity: EntityName, event: DomainEvent, playhead?: Playhead, metadata?: { entity?: string; [extraProps: string]: any; }): DomainEventAction & typeof metadata>; createActions(modelId: ReadModelId, aggregateId: AggregateId, entity: EntityName, events: DomainEvent[], startPlayhead?: Playhead, metadata?: { entity?: string; [extraProps: string]: any; }): DomainEventAction & { [extraProps: string]: any; entity?: string | undefined; }>[]; getReduxReadModelTestContexts(): List>; protected getTransmittedActions(state?: State, options?: any): Promise[]>; }