import type { Asset, AssetEncoding, AssetKey, EncodingType, Storage } from '@junobuild/storage';
import type { User } from './types/auth';
import type { UserEnvironment } from './types/env';
import type { Unsubscribe } from './types/subscription';
export * from './providers/auth.providers';
export { getIdentityOnce, signIn, signOut, unsafeIdentity } from './services/auth.services';
export * from './services/doc.services';
export * from './services/functions.services';
export * from './services/storage.services';
export type * from './types/auth';
export type * from './types/doc';
export type * from './types/env';
export * from './types/errors';
export { ListOrder, ListPaginate, ListParams, ListResults } from './types/list';
export type * from './types/satellite';
export type * from './types/storage.types';
export type * from './types/subscription';
export type * from './types/utility';
export type { Asset, AssetEncoding, AssetKey, EncodingType, Storage };
/**
 * Initializes Juno with the provided optional environment parameters.
 * If no environment is provided, the variables injected by the Vite or NextJS plugins will be used.
 * @deprecated Use {@link initSatellite} instead.
 * @param {UserEnvironment} [userEnv] - The optional user environment configuration.
 * @returns {Promise<Unsubscribe[]>} A promise that resolves to an array of unsubscribe functions.
 */
export declare const initJuno: (userEnv?: UserEnvironment) => Promise<Unsubscribe[]>;
/**
 * Initializes a Juno 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 authSubscribe: (callback: (authUser: User | null) => void) => Unsubscribe;
