import { Representation } from './models/Representation.js'; import { UsagePolicy } from './usagepolicy.js'; export type Artifact = { name: string; description?: string; }; export type DatabaseType = 'Postgres' | 'MSSQL' | 'Oracle'; export type Offer = { id?: string; name: string; description?: string; keywords?: string[]; publisher?: string; language?: string; license?: string; sovereign?: string; start: Date; end: Date; }; export interface IdentityProviderController { getClientList(): unknown; } export interface BrokerController { doSth(): unknown; } export interface ConnectorController { initialize(): Promise; getDescription(hostname: string): unknown; getAllOffers(endPointUrl: string): Promise<{ offerId: string; contractOfferId: string; assetId: string; assetName: string; }[]>; negotiateContract(endPointUrl: string, offeredRessource: { offerId: string; contractOfferId: string; assetId: string; assetName: string; }): Promise<{ contractId: string; }>; getArtifactsForAgreement(contractAgreementId: string): Promise<{ url: string; }[]>; downloadArtifact(artifactUrl: string, forceDownload?: boolean): Promise; transferArtifactsForAgreement(contractAgreementId: string): Promise; createValueArtifact(artifact: Artifact, value: string): Promise; createHttpEndpointArtifact(artifact: Artifact, endpointUrl: string, mimeType: string, apiKey?: { headerKey: string; value: string; }, basicAuth?: { username: string; password: string; }, ressourcePolling?: { delay: number; period: number; }): Promise; createDatabaseArtifact(artifact: Artifact, url: string, database: DatabaseType, username: string, password: string, sqlQuery: string): Promise; createOfferForArtifact(artifactId: string, offer: Offer, representation: Representation, catalog: { name: string; description?: string; }, policy?: UsagePolicy): Promise; getFirstArtifact(endPointUrl: string): Promise; setHttpDataReceiver(url: string): Promise; }