///
import { Subscription } from '@dws/muster-observable';
import { ContextValuesDefinitions, Muster } from '../muster';
import { NodeDefinition } from '../types/graph';
export interface MockSubscriber {
subscription: Subscription;
next: jest.Mock;
}
export interface MusterScenario {
description: string;
before?: () => any | Promise;
after?: () => any | Promise;
graph?: (() => Muster);
operations: Array | ((app: () => Muster) => Array);
}
export interface MusterOperation {
description: string;
skip?: boolean;
only?: boolean;
before?: () => any | Promise;
after?: () => any | Promise;
input?: NodeDefinition;
context?: ContextValuesDefinitions;
expected?: NodeDefinition | Array;
assert?: (results: Array) => void | Promise;
operations?: Array | ((subscriber: () => MockSubscriber, results: () => Array) => Array);
}
export interface MusterScenarioBuilder {
(scenario: MusterScenario | (() => MusterScenario)): void;
only(scenario: MusterScenario | (() => MusterScenario)): void;
skip(scenario: MusterScenario | (() => MusterScenario)): void;
}
declare const _default: MusterScenarioBuilder;
export default _default;
export declare const operation: ((definition: MusterOperation) => MusterOperation) & {
only: (definition: MusterOperation) => MusterOperation;
skip: (definition: MusterOperation) => MusterOperation;
};