import { isWebAuthnAvailable } from '@junobuild/ic-client/webauthn';
import type { Asset, AssetEncoding, AssetKey, EncodingType, Storage } from '@junobuild/storage';
import type { User } from './auth/types/user';
import type { UserEnvironment } from './core/types/env';
import type { Unsubscribe } from './core/types/subscription';
export * from './auth/providers/internet-identity.providers';
export { getIdentityOnce, unsafeIdentity } from './auth/services/identity.services';
export { handleRedirectCallback } from './auth/services/redirect.services';
export { signIn } from './auth/services/sign-in.services';
export { signOut } from './auth/services/sign-out.services';
export { signUp } from './auth/services/sign-up.services';
export type * from './auth/types/auth';
export * from './auth/types/auth-client';
export type * from './auth/types/dev-identity';
export * from './auth/types/errors';
export type * from './auth/types/github';
export type * from './auth/types/google';
export type * from './auth/types/internet-identity';
export type * from './auth/types/progress';
export type * from './auth/types/provider';
export type * from './auth/types/user';
export * from './auth/types/webauthn';
export * from './auth/utils/user.utils';
export type * from './core/types/env';
export { ListOrder, ListPaginate, ListParams, ListResults } from './core/types/list';
export type * from './core/types/satellite';
export type * from './core/types/subscription';
export type * from './core/types/utility';
export * from './datastore/services/doc.services';
export type * from './datastore/types/doc';
export * from './functions/services/functions.services';
export * from './storage/services/storage.services';
export type * from './storage/types/storage';
export { isWebAuthnAvailable };
export type { Asset, AssetEncoding, AssetKey, EncodingType, Storage };
/**
 * @deprecated Use {@link initSatellite} instead.
 */
export declare const initJuno: (userEnv?: UserEnvironment) => Promise<Unsubscribe[]>;
/**
 * Initializes a Satellite with the provided optional environment parameters.
 * If no environment is provided, the variables injected by the Vite or NextJS plugins will be used.
 * @param {UserEnvironment} [userEnv] - The optional user environment configuration.
 * @returns {Promise<Unsubscribe[]>} A promise that resolves to an array of unsubscribe functions.
 */
export declare const initSatellite: (userEnv?: UserEnvironment) => Promise<Unsubscribe[]>;
/**
 * Subscribes to authentication state changes. i.e. each time a user signs in or signs out, the callback will be triggered.
 * @param {function(User | null): void} callback - The callback function to execute when the authentication state changes.
 * @returns {Unsubscribe} A function to unsubscribe from the authentication state changes.
 */
export declare const onAuthStateChange: (callback: (authUser: User | null) => void) => Unsubscribe;
/**
 * @deprecated Use {@link onAuthStateChange} instead.
 */
export declare const authSubscribe: (callback: (authUser: User | null) => void) => Unsubscribe;
export { InternetIdentityConfig, InternetIdentityDomain } from './auth/types/internet-identity';
