import { ApiPath } from "../Extends";
import { PropertyBinding, PropertyDefinition } from "../properties";
import { IdentityExternalMapping } from "./IdentityExternalMapping";
import { IdentitySyncProvider } from "./IdentitySyncProvider";
export interface IIdentityPropertyRegistrationApi {
    register(properties: PropertyBinding<PropertyDefinition<any, any, any>>[]): void;
    getProperties(): PropertyBinding<PropertyDefinition<any, any, any>>[];
}
export interface IIdentitySyncProviderRegistrationApi {
    register(providers: IdentitySyncProvider[]): void;
    getProviders(): IdentitySyncProvider[];
}
export interface IIdentityExternalMappingRegistrationApi {
    register: (mapping: IdentityExternalMapping | IdentityExternalMapping[]) => void;
    getMappings(): IdentityExternalMapping[];
}
declare module "@omnia/fx-models/ux/UxApi" {
    interface IOmniaUxApi {
        identities: {
            properties: {
                registrations: Promise<IIdentityPropertyRegistrationApi>;
            };
            synchronization: {
                registrations: Promise<IIdentitySyncProviderRegistrationApi>;
            };
            externalMappings: {
                registrations: Promise<IIdentityExternalMappingRegistrationApi>;
            };
        };
    }
    interface IOmniaUxExtendApiManifest {
        identities: {
            properties: {
                registrations: ApiPath;
            };
            synchronization: {
                registrations: ApiPath;
            };
            externalMappings: {
                registrations: ApiPath;
            };
        };
    }
}
