import { OAuth2ProviderSkeleton } from '../api/OAuth2ProviderApi';
import { State } from '../shared/State';
export type OAuth2Provider = {
    /**
     * Read oauth2 provider
     * @returns {Promise<OAuth2ProviderSkeleton>} a promise resolving to an oauth2 provider object
     */
    readOAuth2Provider(): Promise<OAuth2ProviderSkeleton | null>;
    /**
     * Create oauth2 provider
     * @param {OAuth2ProviderSkeleton} providerData oauth2 provider data
     * @returns {Promise<OAuth2ProviderSkeleton>} a promise resolving to an oauth2 provider object
     */
    createOAuth2Provider(providerData?: OAuth2ProviderSkeleton): Promise<OAuth2ProviderSkeleton>;
    /**
     * Update or create oauth2 provider
     * @param {OAuth2ProviderSkeleton} providerData oauth2 provider data
     * @returns {Promise<OAuth2ProviderSkeleton>} a promise resolving to an oauth2 provider object
     */
    updateOAuth2Provider(providerData: OAuth2ProviderSkeleton): Promise<OAuth2ProviderSkeleton>;
    /**
     * Delete oauth2 provider
     * @returns {Promise<OAuth2ProviderSkeleton>} a promise resolving to an oauth2 provider object
     */
    deleteOAuth2Provider(): Promise<OAuth2ProviderSkeleton>;
    /**
     * Get oauth2 provider
     * @returns {Promise<OAuth2ProviderSkeleton>} a promise resolving to an oauth2 provider object
     * @deprecated since v2.0.0 use {@link OAuth2Provider.readOAuth2Provider | readOAuth2Provider} instead
     * ```javascript
     * importFirstSocialIdentityProvider(importData: SocialProviderExportInterface): Promise<SocialIdpSkeleton>
     * ```
     * @group Deprecated
     */
    getOAuth2Provider(): Promise<OAuth2ProviderSkeleton>;
};
declare const _default: (state: State) => OAuth2Provider;
export default _default;
export declare function readOAuth2Provider({ state, }: {
    state: State;
}): Promise<OAuth2ProviderSkeleton | null>;
/**
 * Create OAuth2 provider
 * @param {OAuth2ProviderSkeleton} providerData oauth2 provider object
 * @returns {Promise<OAuth2ProviderSkeleton>} a promise that resolves to an oauth2 provider object
 */
export declare function createOAuth2Provider({ providerData: providerData, state, }: {
    providerData: OAuth2ProviderSkeleton;
    state: State;
}): Promise<OAuth2ProviderSkeleton>;
/**
 * Update or create OAuth2 provider
 * @param {OAuth2ProviderSkeleton} providerData oauth2 provider object
 * @returns {Promise<OAuth2ProviderSkeleton>} a promise that resolves to an oauth2 provider object
 */
export declare function updateOAuth2Provider({ providerData: providerData, state, }: {
    providerData: OAuth2ProviderSkeleton;
    state: State;
}): Promise<OAuth2ProviderSkeleton>;
/**
 * Delete OAuth2 Provider
 * @returns {Promise<OAuth2ProviderSkeleton>} a promise that resolves to an oauth2 provider object
 */
export declare function deleteOAuth2Provider({ state, }: {
    state: State;
}): Promise<OAuth2ProviderSkeleton>;
//# sourceMappingURL=OAuth2ProviderOps.d.ts.map