import type { Identity } from '@dfinity/agent';
import type { SignInOptions, SignOutOptions, SignUpOptions } from '../types/auth';
import type { Provider } from '../types/provider';
/**
 * Initialize the authClient and load the existing user.
 * Executed when the library is initialized through initSatellite.
 */
export declare const loadAuth: () => Promise<void>;
/**
 * Initialize the authClient, load or create a new user.
 * Executed on sign-in.
 */
export declare const createAuth: ({ provider }: {
    provider: Provider;
}) => Promise<void>;
/**
 * Signs in a user with the specified options.
 *
 * @default Signs in by default with Internet Identity
 * @param {SignInOptions} [options] - The options for signing in including the provider to use for the process.
 * @returns {Promise<void>} A promise that resolves when the sign-in process is complete and the authenticated user is initialized.
 */
export declare const signIn: (options: SignInOptions) => Promise<void>;
/**
 * Signs up to create a new user with the specified options.
 *
 * @param {SignUpOptions} [options] - The options for signing up including the provider to use for the process.
 * @returns {Promise<void>} A promise that resolves when the sign-up process is complete and the user is authenticated.
 */
export declare const signUp: (options: SignUpOptions) => Promise<void>;
/**
 * Signs out the current user.
 * @returns {Promise<void>} A promise that resolves when the sign-out process is complete.
 */
export declare const signOut: (options?: SignOutOptions) => Promise<void>;
/**
 * ℹ️ Exposed for testing purpose only. Should not be leaked to consumer or used by the library.
 */
export declare const resetAuth: () => Promise<void>;
export declare const getIdentity: () => Identity | undefined;
/**
 * Returns the identity of a signed-in user or an anonymous identity.
 * This function is useful for loading an identity in web workers.
 * Used to imperatively get the identity. Please be certain before using it.
 * @returns {Promise<Identity>} A promise that resolves to the identity of the user or an anonymous identity.
 */
export declare const unsafeIdentity: () => Promise<Identity>;
/**
 * Returns the current identity if the user is authenticated.
 *
 * ⚠️ Use this function imperatively only. Do **not** persist the identity in global state.
 * It is intended for short-lived or one-time operations.
 *
 * Typical use case is to enable developers to implement custom features for the Internet Computer:
 * - Passing the identity to temporarily create an actor or agent to call a canister
 * - Signing a message or making a one-time authenticated call
 *
 * @returns The authenticated identity, or null if unavailable.
 */
export declare const getIdentityOnce: () => Promise<Identity | null>;
