// Copyright (c) Cratis. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. import { Constructor } from '@cratis/fundamentals'; /** * Defines a provider capable of returning discovered client artifact types. */ export interface IClientArtifactsProvider { /** Gets discovered event type constructors. */ readonly eventTypes: Constructor[]; /** Gets discovered read model constructors. */ readonly readModels: Constructor[]; /** Gets discovered reactor constructors. */ readonly reactors: Constructor[]; /** Gets discovered reducer constructors. */ readonly reducers: Constructor[]; /** Gets discovered seeder constructors. */ readonly seeders: Constructor[]; /** Gets discovered constraint constructors. */ readonly constraints: Constructor[]; /** Gets discovered declarative projection constructors. */ readonly projections: Constructor[]; /** Gets discovered webhook constructors. */ readonly webhooks: Constructor[]; /** Gets discovered event type migration constructors. */ readonly eventTypeMigrations: Constructor[]; /** Gets discovered global read model variant handler constructors. */ readonly globalForHandlers: Constructor[]; /** Gets discovered event source definition constructors. Optional so existing providers keep working. */ readonly eventSources?: Constructor[]; }