import { type ScriptSkeleton } from '../api/ScriptApi';
import { type SocialIdpSkeleton } from '../api/SocialIdentityProvidersApi';
import { State } from '../shared/State';
import { type ExportMetaData } from './OpsTypes';
export type Idp = {
    /**
     * Read all social identity providers
     * @returns {Promise<SocialIdpSkeleton[]>} a promise that resolves to an array of social identity providers
     */
    readSocialIdentityProviders(): Promise<SocialIdpSkeleton[]>;
    /**
     * Read social identity provider
     * @param {string} providerId identity provider id/name
     * @returns {Promise<SocialIdpSkeleton>} a promise that resolves a social identity provider object
     */
    readSocialIdentityProvider(providerId: string): Promise<SocialIdpSkeleton>;
    /**
     * Create social identity provider
     * @param {string} providerType identity provider type
     * @param {string} providerId identity provider id/name
     * @param {SocialIdpSkeleton} providerData identity provider data
     * @returns {Promise<SocialIdpSkeleton>} a promise that resolves a social identity provider object
     */
    createSocialIdentityProvider(providerType: string, providerId: string, providerData: SocialIdpSkeleton): Promise<SocialIdpSkeleton>;
    /**
     * Update or create social identity provider
     * @param {string} providerType identity provider type
     * @param {string} providerId identity provider id/name
     * @param {SocialIdpSkeleton} providerData identity provider data
     * @returns {Promise<SocialIdpSkeleton>} a promise that resolves a social identity provider object
     */
    updateSocialIdentityProvider(providerType: string, providerId: string, providerData: SocialIdpSkeleton): Promise<SocialIdpSkeleton>;
    /**
     * Delete all social identity providers
     * @returns {Promise<SocialIdpSkeleton[]>} a promise that resolves to an array of social identity provider objects
     */
    deleteSocialIdentityProviders(): Promise<SocialIdpSkeleton[]>;
    /**
     * Delete social identity provider
     * @param {string} providerId social identity provider id/name
     * @returns {Promise<SocialIdpSkeleton>} a promise that resolves a social identity provider object
     */
    deleteSocialIdentityProvider(providerId: string): Promise<SocialIdpSkeleton>;
    /**
     * Export social identity provider
     * @param {string} providerId provider id/name
     * @returns {Promise<SocialProviderExportInterface>} a promise that resolves to a SocialProviderExportInterface object
     */
    exportSocialIdentityProvider(providerId: string): Promise<SocialProviderExportInterface>;
    /**
     * Export all social identity providers
     * @param {SocialIdentityProviderExportOptions} options export options
     * @returns {Promise<SocialProviderExportInterface>} a promise that resolves to a SocialProviderExportInterface object
     */
    exportSocialIdentityProviders(options?: SocialIdentityProviderExportOptions): Promise<SocialProviderExportInterface>;
    /**
     * Import social identity provider
     * @param {string} providerId provider id/name
     * @param {SocialProviderExportInterface} importData import data
     * @param {SocialIdentityProviderImportOptions} options import options
     * @returns {Promise<SocialIdpSkeleton>} a promise resolving to a social identity provider object
     */
    importSocialIdentityProvider(providerId: string, importData: SocialProviderExportInterface, options: SocialIdentityProviderImportOptions): Promise<SocialIdpSkeleton>;
    /**
     * Import first social identity provider
     * @param {SocialProviderExportInterface} importData import data
     * @param {SocialIdentityProviderImportOptions} options import options
     * @returns {Promise<SocialIdpSkeleton>} a promise resolving to a social identity provider object
     */
    importFirstSocialIdentityProvider(importData: SocialProviderExportInterface, options: SocialIdentityProviderImportOptions): Promise<SocialIdpSkeleton>;
    /**
     * Import all social identity providers
     * @param {SocialProviderExportInterface} importData import data
     * @param {SocialIdentityProviderImportOptions} options import options
     * @returns {Promise<SocialIdpSkeleton[]>} a promise resolving to an array of social identity provider objects
     */
    importSocialIdentityProviders(importData: SocialProviderExportInterface, options: SocialIdentityProviderImportOptions): Promise<SocialIdpSkeleton[]>;
    /**
     * Get all social identity providers
     * @returns {Promise<SocialIdpSkeleton[]>} a promise that resolves to an array of social identity providers
     * @deprecated since v2.0.0 use {@link Idp.readSocialIdentityProviders | readSocialIdentityProviders} instead
     * ```javascript
     * readSocialIdentityProviders(): Promise<SocialIdpSkeleton[]>
     * ```
     * @group Deprecated
     */
    getSocialIdentityProviders(): Promise<SocialIdpSkeleton[]>;
    /**
     * Get social identity provider by id
     * @param {string} providerId identity provider id/name
     * @returns {Promise<SocialIdpSkeleton>} a promise that resolves a social identity provider object
     * @deprecated since v2.0.0 use {@link Idp.readSocialIdentityProvider | readSocialIdentityProvider} instead
     * ```javascript
     * readSocialIdentityProvider(providerId: string): Promise<SocialIdpSkeleton>
     * ```
     * @group Deprecated
     */
    getSocialProvider(providerId: string): Promise<SocialIdpSkeleton>;
    /**
     * Update or create identity provider
     * @param {string} providerType identity provider type
     * @param {string} providerId identity provider id/name
     * @param {SocialIdpSkeleton} providerData identity provider data
     * @returns {Promise<SocialIdpSkeleton>} a promise that resolves a social identity provider object
     * @deprecated since v2.0.0 use {@link Idp.updateSocialIdentityProvider | updateSocialIdentityProvider} or {@link Idp.createSocialIdentityProvider | createSocialIdentityProvider} instead
     * ```javascript
     * updateSocialIdentityProvider(providerType: string, providerId: string, providerData: SocialIdpSkeleton): Promise<SocialIdpSkeleton>
     * createSocialIdentityProvider(providerType: string, providerId: string, providerData: SocialIdpSkeleton): Promise<SocialIdpSkeleton>
     * ```
     * @group Deprecated
     */
    putProviderByTypeAndId(providerType: string, providerId: string, providerData: SocialIdpSkeleton): Promise<SocialIdpSkeleton>;
    /**
     * Delete social identity provider
     * @param {string} providerId social identity provider id/name
     * @returns {Promise<SocialIdpSkeleton>} a promise that resolves to a social identity provider object
     * @deprecated since v2.0.0 use {@link Idp.deleteSocialIdentityProvider | deleteSocialIdentityProvider} instead
     * ```javascript
     * deleteSocialIdentityProvider(providerId: string): Promise<SocialIdpSkeleton>
     * ```
     * @group Deprecated
     */
    deleteSocialProvider(providerId: string): Promise<SocialIdpSkeleton>;
    /**
     * Export social identity provider
     * @param {string} providerId provider id/name
     * @returns {Promise<SocialProviderExportInterface>} a promise that resolves to a SocialProviderExportInterface object
     * @deprecated since v2.0.0 use {@link Idp.exportSocialIdentityProvider | exportSocialIdentityProvider} instead
     * ```javascript
     * exportSocialIdentityProvider(providerId: string): Promise<SocialProviderExportInterface>
     * ```
     * @group Deprecated
     */
    exportSocialProvider(providerId: string): Promise<SocialProviderExportInterface>;
    /**
     * Export all social identity providers
     * @returns {Promise<SocialProviderExportInterface>} a promise that resolves to a SocialProviderExportInterface object
     * @deprecated since v2.0.0 use {@link Idp.exportSocialIdentityProviders | exportSocialIdentityProviders} instead
     * ```javascript
     * exportSocialIdentityProviders(): Promise<SocialProviderExportInterface[]>
     * ```
     * @group Deprecated
     */
    exportSocialProviders(): Promise<SocialProviderExportInterface>;
    /**
     * Import social identity provider
     * @param {string} providerId provider id/name
     * @param {SocialProviderExportInterface} importData import data
     * @deprecated since v2.0.0 use {@link Idp.importSocialIdentityProvider | importSocialIdentityProvider} instead
     * ```javascript
     * importSocialIdentityProvider(providerId: string, importData: SocialProviderExportInterface): Promise<SocialIdpSkeleton>
     * ```
     * @group Deprecated
     */
    importSocialProvider(providerId: string, importData: SocialProviderExportInterface): Promise<boolean>;
    /**
     * Import first social identity provider
     * @param {SocialProviderExportInterface} importData import data
     * @deprecated since v2.0.0 use {@link Idp.importFirstSocialIdentityProvider | importFirstSocialIdentityProvider} instead
     * ```javascript
     * importFirstSocialIdentityProvider(importData: SocialProviderExportInterface): Promise<SocialIdpSkeleton>
     * ```
     * @group Deprecated
     */
    importFirstSocialProvider(importData: SocialProviderExportInterface): Promise<boolean>;
    /**
     * Import all social identity providers
     * @param {SocialProviderExportInterface} importData import data
     * @deprecated since v2.0.0 use {@link Idp.importFirstSocialIdentityProviders | importFirstSocialIdentityProviders} instead
     * ```javascript
     * importFirstSocialIdentityProviders(importData: SocialProviderExportInterface): Promise<SocialIdpSkeleton[]>
     * ```
     * @group Deprecated
     */
    importSocialProviders(importData: SocialProviderExportInterface): Promise<boolean>;
};
declare const _default: (state: State) => Idp;
export default _default;
/**
 * Social identity provider export options
 */
export interface SocialIdentityProviderExportOptions {
    /**
     * Use string arrays to store multi-line text in scripts.
     */
    useStringArrays: boolean;
    /**
     * Include any dependencies (scripts).
     */
    deps: boolean;
}
/**
 * Social identity provider import options
 */
export interface SocialIdentityProviderImportOptions {
    /**
     * Include any dependencies (scripts).
     */
    deps: boolean;
}
export interface SocialProviderExportInterface {
    meta?: ExportMetaData;
    script: Record<string, ScriptSkeleton>;
    idp: Record<string, SocialIdpSkeleton>;
}
/**
 * Get all social identity providers
 * @returns {Promise} a promise that resolves to an object containing an array of social identity providers
 */
export declare function readSocialIdentityProviders({ state, }: {
    state: State;
}): Promise<SocialIdpSkeleton[]>;
/**
 * Read social identity provider
 * @param {string} providerId social identity provider id/name
 * @returns {Promise<SocialIdpSkeleton>} a promise that resolves a social identity provider object
 */
export declare function readSocialIdentityProvider({ providerId, state, }: {
    providerId: string;
    state: State;
}): Promise<SocialIdpSkeleton>;
export declare function createSocialIdentityProvider({ providerType, providerId, providerData, state, }: {
    providerType: string;
    providerId: string;
    providerData: SocialIdpSkeleton;
    state: State;
}): Promise<SocialIdpSkeleton>;
export declare function updateSocialIdentityProvider({ providerType, providerId, providerData, state, }: {
    providerType: string;
    providerId: string;
    providerData: SocialIdpSkeleton;
    state: State;
}): Promise<SocialIdpSkeleton>;
/**
 * Delete all social identity providers
 * @returns {Promise<SocialIdpSkeleton[]>} a promise that resolves to an array of social identity provider objects
 */
export declare function deleteSocialIdentityProviders({ state, }: {
    state: State;
}): Promise<SocialIdpSkeleton[]>;
/**
 * Delete social identity provider by id
 * @param {String} providerId social identity provider id/name
 * @returns {Promise} a promise that resolves a social identity provider object
 */
export declare function deleteSocialIdentityProvider({ providerId, state, }: {
    providerId: string;
    state: State;
}): Promise<SocialIdpSkeleton>;
/**
 * Export social provider by id
 * @param {string} providerId provider id/name
 * @returns {Promise<SocialProviderExportInterface>} a promise that resolves to a SocialProviderExportInterface object
 */
export declare function exportSocialIdentityProvider({ providerId, state, }: {
    providerId: string;
    state: State;
}): Promise<SocialProviderExportInterface>;
/**
 * Export all providers
 * @returns {Promise<SocialProviderExportInterface>} a promise that resolves to a SocialProviderExportInterface object
 */
export declare function exportSocialIdentityProviders({ options, state, }: {
    options?: SocialIdentityProviderExportOptions;
    state: State;
}): Promise<SocialProviderExportInterface>;
/**
 * Import social identity provider
 * @param {string} providerId provider id/name
 * @param {SocialProviderExportInterface} importData import data
 * @param {SocialIdentityProviderImportOptions} options import options
 * @returns {Promise<SocialIdpSkeleton>} a promise resolving to a social identity provider object
 */
export declare function importSocialIdentityProvider({ providerId, importData, options, state, }: {
    providerId: string;
    importData: SocialProviderExportInterface;
    options?: SocialIdentityProviderImportOptions;
    state: State;
}): Promise<SocialIdpSkeleton>;
/**
 * Import first social identity provider
 * @param {SocialProviderExportInterface} importData import data
 * @param {SocialIdentityProviderImportOptions} options import options
 * @returns {Promise<SocialIdpSkeleton>} a promise resolving to a social identity provider object
 */
export declare function importFirstSocialIdentityProvider({ importData, options, state, }: {
    importData: SocialProviderExportInterface;
    options?: SocialIdentityProviderImportOptions;
    state: State;
}): Promise<SocialIdpSkeleton>;
/**
 * Import all social identity providers
 * @param {SocialProviderExportInterface} importData import data
 * @param {SocialIdentityProviderImportOptions} options import options
 * @returns {Promise<SocialIdpSkeleton[]>} a promise resolving to an array of social identity provider objects
 */
export declare function importSocialIdentityProviders({ importData, options, state, }: {
    importData: SocialProviderExportInterface;
    options?: SocialIdentityProviderImportOptions;
    state: State;
}): Promise<SocialIdpSkeleton[]>;
/**
 * Import provider by id/name
 * @param {string} providerId provider id/name
 * @param {SocialProviderExportInterface} importData import data
 * @returns {Promise<boolean>} a promise resolving to true if successful, false otherwise
 */
export declare function importSocialProvider({ providerId, importData, state, }: {
    providerId: string;
    importData: SocialProviderExportInterface;
    state: State;
}): Promise<boolean>;
/**
 * Import first provider
 * @param {SocialProviderExportInterface} importData import data
 * @returns {Promise<boolean>} a promise resolving to true if successful, false otherwise
 */
export declare function importFirstSocialProvider({ importData, state, }: {
    importData: SocialProviderExportInterface;
    state: State;
}): Promise<boolean>;
/**
 * Import all providers
 * @param {SocialProviderExportInterface} importData import data
 * @returns {Promise<boolean>} a promise resolving to true if successful, false otherwise
 */
export declare function importSocialProviders({ importData, state, }: {
    importData: SocialProviderExportInterface;
    state: State;
}): Promise<boolean>;
//# sourceMappingURL=IdpOps.d.ts.map