import { IExtend, LoadableBundleManifest, GuidValue, IExtendApiManifest, IExtendApiManifestWithConfiguration, ApiPath, Future } from "../models";
export type ExtendApiConfigurationManifest<T> = {
    configuration: T;
    manifest: LoadableBundleManifest;
};
export declare const Extend: IExtend;
export declare function registerApi<T>(targetApi: ((extend: IExtend) => Promise<T>) | string, callback: (resolve: (value: T) => void) => void): void;
export declare module InternalExtend {
    function getApiPathString(exp: (extend: IExtend | IExtendApiManifest) => ApiPath | IExtendApiManifestWithConfiguration<any>): string;
    function getExtendApiConfiguration<T>(targetApi: ((extend: IExtendApiManifest) => IExtendApiManifestWithConfiguration<T>)): Promise<ExtendApiConfigurationManifest<T>[]>;
    function extendApi<T>(targetApi: ((extend: IExtend) => Promise<T>) | string, omniaServiceId: GuidValue, omniaManifestId: GuidValue, callback?: (api: T) => void | Promise<void>): void;
    function initApiHub(): Future<void>;
}
