import { BrokerController, ConnectorController, Endpoint, EnvironmentControllerInterface, IdentityProviderController, Instance, LogLevel } from './../index.js'; export type ScenarioConfiguration = { name: string; environmentControllerFactory: () => Promise; defaultConnectorInstanceFactory: (deploymentName: string) => Instance; ConnectorControllerType: new (hostname: string, username: string, password: string, endpoints: Endpoint[]) => ConnectorController; identityManagement: { InstanceType: new (deploymentName: string, username: string, password: string) => Instance; IdentityProviderControllerType: new () => IdentityProviderController; } | undefined; }; export interface ScenarioControllerInterface { scenarioConfiguration: ScenarioConfiguration; envController: EnvironmentControllerInterface; runScenario(scenario: Scenario): Promise; log(level: LogLevel, text: string, sourceComponent: string, labels: { [key: string]: string; }): void; startConnector(username: string, password: string, hostname: string, Instance?: I, ConnectorControllerType?: new (hostname: string, username: string, password: string, endpoints: Endpoint[]) => C): Promise>; useConnector(username: string, password: string, hostname: string, Instance?: I, ConnectorControllerType?: new (hostname: string, username: string, password: string, endpoints: Endpoint[]) => C): Promise>; startBroker(instance: I, controllerType: C): Promise>; wait(ms: number): Promise; tearDown(): Promise; } export interface Scenario { run: (scenarioController: ScenarioControllerInterface) => void; scenario_name: string; } export interface Connector { instanceController: I; componentController: C; } export interface Broker { instanceController: I; componentController: C; } export interface IdentityProvider { instanceController: I; componentController: C; }