import { type AdminFederationConfigSkeleton } from '../../api/cloud/AdminFederationProvidersApi';
import { SocialIdpSkeleton } from '../../api/SocialIdentityProvidersApi';
import { State } from '../../shared/State';
import { ExportMetaData } from '../OpsTypes';
export type AdminFederation = {
    /**
     * Create an empty idp export template
     * @returns {AdminFederationExportInterface} an empty idp export template
     */
    createAdminFederationExportTemplate(): AdminFederationExportInterface;
    /**
     * Read all admin federation providers
     * @returns {Promise} a promise that resolves to an object containing an array of admin federation providers
     */
    readAdminFederationProviders(): Promise<SocialIdpSkeleton[]>;
    /**
     * Read admin federation provider
     * @param {string} providerId social identity provider id/name
     * @returns {Promise<SocialIdpSkeleton>} a promise that resolves a social admin federation object
     */
    readAdminFederationProvider(providerId: string): Promise<SocialIdpSkeleton>;
    /**
     * Create admin federation provider
     * @param {string} providerType social identity provider type
     * @param {string} providerId social identity provider id/name
     * @param {SocialIdpSkeleton} providerData social identity provider data
     * @returns {Promise<SocialIdpSkeleton>} a promise that resolves a social admin federation object
     */
    createAdminFederationProvider(providerType: string, providerData: SocialIdpSkeleton, providerId?: string): Promise<SocialIdpSkeleton>;
    /**
     * Update or create admin federation provider
     * @param {string} providerType social identity provider type
     * @param {string} providerId social identity provider id/name
     * @param {SocialIdpSkeleton} providerData social identity provider data
     * @returns {Promise<SocialIdpSkeleton>} a promise that resolves a social admin federation object
     */
    updateAdminFederationProvider(providerType: string, providerId: string, providerData: SocialIdpSkeleton): Promise<SocialIdpSkeleton>;
    /**
     * Delete admin federation provider by id
     * @param {String} providerId admin federation provider id/name
     * @returns {Promise} a promise that resolves to an admin federation provider object
     */
    deleteAdminFederationProvider(providerId: string): Promise<SocialIdpSkeleton>;
    /**
     * Export admin federation provider by id
     * @param {string} providerId provider id/name
     * @returns {Promise<AdminFederationExportInterface>} a promise that resolves to a SocialProviderExportInterface object
     */
    exportAdminFederationProvider(providerId: string): Promise<AdminFederationExportInterface>;
    /**
     * Export all providers
     * @returns {Promise<AdminFederationExportInterface>} a promise that resolves to a SocialProviderExportInterface object
     */
    exportAdminFederationProviders(): Promise<AdminFederationExportInterface>;
    /**
     * Import admin federation provider by id/name
     * @param {string} providerId provider id/name
     * @param {AdminFederationExportInterface} importData import data
     */
    importAdminFederationProvider(providerId: string, importData: AdminFederationExportInterface): Promise<SocialIdpSkeleton>;
    /**
     * Import first provider
     * @param {AdminFederationExportInterface} importData import data
     */
    importFirstAdminFederationProvider(importData: AdminFederationExportInterface): Promise<SocialIdpSkeleton>;
    /**
     * Import all providers
     * @param {AdminFederationExportInterface} importData import data
     */
    importAdminFederationProviders(importData: AdminFederationExportInterface): Promise<SocialIdpSkeleton[]>;
    /**
     * Get all admin federation providers
     * @returns {Promise<SocialIdpSkeleton[]>} a promise that resolves to an object containing an array of admin federation providers
     * @deprecated since v2.0.0 use {@link AdminFederation.readAdminFederationProviders | readAdminFederationProviders} instead
     * ```javascript
     * readAdminFederationProviders(): Promise<SocialIdpSkeleton[]>
     * ```
     * @group Deprecated
     */
    getAdminFederationProviders(): Promise<SocialIdpSkeleton[]>;
    /**
     * Get admin federation provider
     * @param {String} providerId social identity provider id/name
     * @returns {Promise} a promise that resolves a social admin federation object
     * @deprecated since v2.0.0 use {@link AdminFederation.readAdminFederationProvider | readAdminFederationProvider} instead
     * ```javascript
     * readAdminFederationProvider(providerId: string): Promise<SocialIdpSkeleton>
     * ```
     * @group Deprecated
     */
    getAdminFederationProvider(providerId: string): Promise<SocialIdpSkeleton>;
    /**
     * Update or create admin federation provider
     * @param {string} providerType social identity provider type
     * @param {string} providerId social identity provider id/name
     * @param {SocialIdpSkeleton} providerData social identity provider data
     * @returns {Promise<SocialIdpSkeleton>} a promise that resolves a social admin federation object
     * @deprecated since v2.0.0 use {@link AdminFederation.updateAdminFederationProvider | updateAdminFederationProvider} instead
     * ```javascript
     * updateAdminFederationProvider(providerType: string, providerId: string, providerData: SocialIdpSkeleton): Promise<SocialIdpSkeleton>
     * ```
     * @group Deprecated
     */
    putProviderByTypeAndId(providerType: string, providerId: string, providerData: SocialIdpSkeleton): Promise<SocialIdpSkeleton>;
};
declare const _default: (state: State) => AdminFederation;
export default _default;
export interface AdminFederationExportInterface {
    meta?: ExportMetaData;
    config: Record<string, AdminFederationConfigSkeleton>;
    idp: Record<string, SocialIdpSkeleton>;
}
/**
 * Create an empty idp export template
 * @returns {AdminFederationExportInterface} an empty idp export template
 */
export declare function createAdminFederationExportTemplate({ state, }: {
    state: State;
}): AdminFederationExportInterface;
/**
 * Get all admin federation providers
 * @returns {Promise<SocialIdpSkeleton[]>} a promise that resolves to an object containing an array of admin federation providers
 */
export declare function readAdminFederationProviders({ state, }: {
    state: State;
}): Promise<SocialIdpSkeleton[]>;
/**
 * Get admin federation provider by id
 * @param {String} providerId social identity provider id/name
 * @returns {Promise<SocialIdpSkeleton>} a promise that resolves a social admin federation object
 */
export declare function readAdminFederationProvider({ providerId, state, }: {
    providerId: string;
    state: State;
}): Promise<SocialIdpSkeleton>;
export declare function createAdminFederationProvider({ providerType, providerId, providerData, state, }: {
    providerType: string;
    providerId: string;
    providerData: SocialIdpSkeleton;
    state: State;
}): Promise<SocialIdpSkeleton>;
export declare function updateAdminFederationProvider({ providerType, providerId, providerData, state, }: {
    providerType: string;
    providerId: string;
    providerData: SocialIdpSkeleton;
    state: State;
}): Promise<SocialIdpSkeleton>;
/**
 * Delete admin federation provider by id
 * @param {String} providerId admin federation provider id/name
 * @returns {Promise<SocialIdpSkeleton>} a promise that resolves to an admin federation provider object
 */
export declare function deleteAdminFederationProvider({ providerId, state, }: {
    providerId: string;
    state: State;
}): Promise<SocialIdpSkeleton>;
/**
 * Export admin federation provider by id
 * @param {string} providerId provider id/name
 * @returns {Promise<AdminFederationExportInterface>} a promise that resolves to a SocialProviderExportInterface object
 */
export declare function exportAdminFederationProvider({ providerId, state, }: {
    providerId: string;
    state: State;
}): Promise<AdminFederationExportInterface>;
/**
 * Export all providers
 * @returns {Promise<AdminFederationExportInterface>} a promise that resolves to a SocialProviderExportInterface object
 */
export declare function exportAdminFederationProviders({ state, }: {
    state: State;
}): Promise<AdminFederationExportInterface>;
/**
 * Import admin federation provider by id/name
 * @param {string} providerId provider id/name
 * @param {AdminFederationExportInterface} importData import data
 */
export declare function importAdminFederationProvider({ providerId, importData, state, }: {
    providerId: string;
    importData: AdminFederationExportInterface;
    state: State;
}): Promise<SocialIdpSkeleton>;
/**
 * Import first provider
 * @param {AdminFederationExportInterface} importData import data
 */
export declare function importFirstAdminFederationProvider({ importData, state, }: {
    importData: AdminFederationExportInterface;
    state: State;
}): Promise<SocialIdpSkeleton>;
/**
 * Import all providers
 * @param {AdminFederationExportInterface} importData import data
 */
export declare function importAdminFederationProviders({ importData, state, }: {
    importData: AdminFederationExportInterface;
    state: State;
}): Promise<SocialIdpSkeleton[]>;
//# sourceMappingURL=AdminFederationOps.d.ts.map