///
import { ExchangeKeyEnum, ProviderEnum, TokenScope } from '@dynamic-labs/sdk-api-core';
import { SocialOAuthError, SocialOAuthErrorCode } from '@dynamic-labs/types';
import { PayWithDynamicProps } from '../usePayWithDynamic/usePayWithDynamic';
export type SocialAuthMode = 'link' | 'signin' | 'stepup' | 'unlink';
type UseSocialAuthProps = {
onSettled?: () => void;
onError?: (error: unknown) => void;
onFarcasterUrl?: (url: string) => void;
};
export type ConnectSocialAccountProps = {
authMode: SocialAuthMode;
provider: ProviderEnum;
validator?: (provider: ProviderEnum) => boolean;
captchaToken?: string;
redirectUrl?: string;
telegramAuthToken?: string;
showWidgetAfterConnection?: boolean;
forcePopup?: boolean;
triggerFundFromExchangeOnSuccess?: ExchangeKeyEnum;
payingWithDynamic?: PayWithDynamicProps;
/** marks the flow as initiated by headless sign-in API */
isHeadlessSocialSignIn?: boolean;
/** SSO provider ID for social authentication */
ssoProviderId?: string;
/** OAuth scopes to request; only used when authMode is 'stepup' */
requestedScopes?: TokenScope[];
};
export declare const useSocialAuth: ({ onSettled, onError, onFarcasterUrl, }: UseSocialAuthProps) => {
readonly checkValidProvider: (provider: ProviderEnum, authMode: SocialAuthMode) => boolean;
readonly completeConnection: ({ authMode, provider, state, authCode, captchaToken, verifier, telegramAuthToken, forceCreateUser, ssoProviderId, requestedScopes, }: {
authMode: SocialAuthMode;
provider: ProviderEnum;
state: string;
captchaToken?: string | undefined;
authCode?: string | undefined;
verifier?: string | undefined;
telegramAuthToken?: string | undefined;
forceCreateUser?: boolean | undefined;
ssoProviderId?: string | undefined;
requestedScopes?: TokenScope[] | undefined;
}) => Promise;
readonly connectSocialAccount: (props: ConnectSocialAccountProps) => Promise;
readonly error: SocialOAuthError | undefined;
readonly handleError: (provider: ProviderEnum | undefined, code: SocialOAuthErrorCode, message: string, options?: {
raiseAuthFailure?: boolean | undefined;
} | undefined) => void;
readonly isProcessing: boolean;
readonly setError: import("react").Dispatch>;
readonly setIsProcessing: import("react").Dispatch>;
};
export {};