// this file will be overwritten import type { AssetType, ResourceErrors, Context as Context_ } from '@semantic-api/api' import type { Description } from '@semantic-api/types' import { Either } from '@semantic-api/common' declare global { type SystemCollections = typeof import('@semantic-api/system/collections') type UserCollections = typeof import('./src').collections type SystemAlgorithms = typeof import('@semantic-api/system/algorithms') type UserAlgorithms = typeof import('./src').algorithms type Collections = { [K in keyof (SystemCollections & UserCollections)]: Awaited> } type Algorithms = { [K in keyof (SystemAlgorithms & UserAlgorithms)]: Awaited> } type Context = Context_ type UserAccessControl = typeof accessControl type UserACProfile = { roles: ReadonlyArray } } declare module '@semantic-api/api' { export async function getResourceAsset< const ResourceName extends keyof Collections, const AssetName extends (keyof Collections[ResourceName] & AssetType) | 'model', ReturnedAsset=ResourceName extends keyof Collections ? AssetName extends keyof Collections[ResourceName] ? Collections[ResourceName][AssetName] : never : never >( resourceName: ResourceName, assetName: AssetName, ): Promise< Either< ResourceErrors, ReturnedAsset > > export const get = getResourceAsset export async function getFunction< ResourceName extends keyof Collections, FunctionName extends keyof Collections[ResourceName]['functions'], ReturnedFunction=ResourceName extends keyof Collections ? FunctionName extends keyof Collections[ResourceName]['functions'] ? Collections[ResourceName]['functions'][FunctionName] : never : never >( resourceName: ResourceName, functionName: FunctionName, acProfile?: UserACProfile ): Promise< Either< ResourceErrors, ReturnedFunction > > } //