import { ILinkHandlerProvider } from "../LinkHandler"; import { ApiPath } from "../Extends"; export interface ILinkHandlerApi { registration: Promise; } declare module "./UxApi" { interface IOmniaUxApi { linkHandler: ILinkHandlerApi; } interface IOmniaUxExtendApiManifest { linkHandler: { registration: ApiPath; }; } } export interface ILinkHandlerRegistrationApi { /** * Register new link handler provider * @example * // Using `extendApi` from (at)omnia/fx * extendApi(api => api.fx.ux.linkHandler.registration, api => { api.registerLinkProvider(new YourProvider(someHandlerFunction)); }); * @param provider The provider, either a class or an array of `ILinkHandlerProvider` */ registerLinkProvider(provider: ILinkHandlerProvider | ILinkHandlerProvider[]): void; /** * Get all handlers * @returns {ILinkHandlerProvider[]} Array of `ILinkHandlerProvider` */ getAllLinkHandlerProviders(): ILinkHandlerProvider[]; }