import { EntityMetadata } from '../Redux/EntityMetadata'; import { SerializableQuery } from './SerializableQuery'; import { Query, QueryConstructor } from 'ts-eventsourcing/QueryHandling/Query'; import { ClassConstructor } from '../Serializer/ClassConstructor'; export interface QueryAction { type: string; metadata: EntityMetadata & Metadata; query: T; } export interface QueryResponseAction extends QueryAction { response: Response; } export declare function isQueryAction(action: any): action is QueryAction; export declare function isQueryActionOfType(action: any, type: (entity: string, query: QueryConstructor | Query) => string): action is QueryAction; export declare function queryActionTypeFactory(type: string): (entity: string, query: object | QueryConstructor) => string; export declare function asQueryAction(action: any, query: QueryConstructor): QueryAction; export declare function asQueryActionWithResponse(action: any, query: QueryConstructor, responseClass?: ClassConstructor): QueryResponseAction;