import { User } from './clientTypes.ts';
type SharedInput = {
    apiURI: string;
    appId: string;
};
export type SendMagicCodeParams = {
    email: string;
};
export type SendMagicCodeResponse = {
    sent: true;
};
export declare function sendMagicCode({ apiURI, appId, email, }: SharedInput & SendMagicCodeParams): Promise<SendMagicCodeResponse>;
export type VerifyMagicCodeParams = {
    email: string;
    code: string;
    refreshToken?: string | undefined;
};
export type VerifyResponse = {
    user: User;
};
/**
 * @deprecated Use {@link checkMagicCode} instead to get the `created` field
 * and support `extraFields`.
 */
export declare function verifyMagicCode({ apiURI, appId, email, code, refreshToken, }: SharedInput & VerifyMagicCodeParams): Promise<VerifyResponse>;
export type CheckMagicCodeParams = {
    email: string;
    code: string;
    refreshToken?: string | undefined;
    extraFields?: Record<string, any> | undefined;
};
export type CheckMagicCodeResponse = {
    user: User;
    created: boolean;
};
export declare function checkMagicCode({ apiURI, appId, email, code, refreshToken, extraFields, }: SharedInput & CheckMagicCodeParams): Promise<CheckMagicCodeResponse>;
export type VerifyRefreshTokenParams = {
    refreshToken: string;
};
export declare function verifyRefreshToken({ apiURI, appId, refreshToken, }: SharedInput & VerifyRefreshTokenParams): Promise<VerifyResponse>;
export declare function signInAsGuest({ apiURI, appId, }: SharedInput): Promise<VerifyResponse>;
export type ExchangeCodeForTokenParams = {
    code: string;
    codeVerifier?: string;
    refreshToken?: string | undefined;
    extraFields?: Record<string, any> | undefined;
};
export declare function exchangeCodeForToken({ apiURI, appId, code, codeVerifier, refreshToken, extraFields, }: SharedInput & ExchangeCodeForTokenParams): Promise<CheckMagicCodeResponse>;
export type SignInWithIdTokenParams = {
    nonce?: string | null | undefined;
    idToken: string;
    clientName: string;
    refreshToken?: string;
    extraFields?: Record<string, any> | undefined;
};
export declare function signInWithIdToken({ apiURI, appId, nonce, idToken, clientName, refreshToken, extraFields, }: SharedInput & SignInWithIdTokenParams): Promise<CheckMagicCodeResponse>;
export type SignoutParams = {
    refreshToken: string;
};
export declare function signOut({ apiURI, appId, refreshToken, }: SharedInput & SignoutParams): Promise<{}>;
export {};
//# sourceMappingURL=authAPI.d.ts.map