import { GuidValue } from "@omnia/fx-models";
export interface RegisterEnterprisePropertiesProvider {
    /**
     * Indentity provider
     */
    providerId: string;
    /**
     * Registration Title. Support localization : $Localize:A.B.C;
     */
    title: string;
}
export interface IEnterprisePropertiesImplementation {
    getEnterprisePropertiesByProvider(providerId: GuidValue): {
        [propertyName: string]: any;
    };
}
export interface IEnterprisePropertiesImplementationRegistration extends IEnterprisePropertiesImplementation {
    register(registration: EnterprisePropertiesImplementation): void;
}
export declare class EnterprisePropertiesImplementation {
    providerId: GuidValue;
    implementation: new () => IEnterprisePropertiesImplementation;
    constructor(providerId: GuidValue, implementation: new () => IEnterprisePropertiesImplementation);
}
export interface IEnterprisePropertiesRegisterApi {
    registerProvider: (providers: RegisterEnterprisePropertiesProvider | RegisterEnterprisePropertiesProvider[]) => void;
}
export interface IPropertiesRegisterApi extends IEnterprisePropertiesRegisterApi {
    getAllProviders: () => RegisterEnterprisePropertiesProvider[];
}
declare module "./Extends" {
    interface IOmniaFxApi {
        properties: {
            registration: Promise<IEnterprisePropertiesRegisterApi>;
            implementation: Promise<IEnterprisePropertiesImplementationRegistration>;
        };
    }
    interface IOmniaFxApiManifest {
        properties: {
            registration: ApiPath;
            implementation: IExtendApiManifestWithConfiguration<GuidValue>;
        };
    }
}
