import { ILinkHandlerProvider } from "../LinkHandler";
import { ApiPath } from "../Extends";
export interface ILinkHandlerApi {
    registration: Promise<ILinkHandlerRegistrationApi>;
}
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[];
}
