import { Endpoints, UserMessages } from "./setup/internal.js";
import { Implementation as AuthImplementation } from "./auth/implementation/types.js";
import { Implementation as CryptoImplementation } from "./crypto/implementation/types.js";
import { Implementation as DnsImplementation } from "./dns/implementation/types.js";
import { Implementation as StorageImplementation } from "./storage/implementation/types.js";
/**
 * Toggle debug mode.
 *
 * Only adds a few `console.log`s at this moment.
 */
export declare function debug({ enabled }: {
    enabled: boolean;
}): boolean;
/**
 * Configure whether webnative should aggressively pin
 * everything, or pin nothing at all.
 */
export declare function shouldPin({ enabled }: {
    enabled: boolean;
}): boolean;
/**
 * Set the file system version.
 *
 * This will only affect new file systems created.
 * Existing file systems (whether loaded from another device or loaded locally) continue
 * using the same version.
 * If you're looking to migrate an existing file system to a new file system version,
 * please look for migration tooling.
 */
export declare function fsVersion({ version }: {
    version: string;
}): string;
/**
 * Configure how the wnfs wasm module should be loaded.
 *
 * This only has an effect if you're using file systems of version 3 or higher.
 *
 * By default this loads the required version of the wasm wnfs module from unpkg.com.
 */
export declare function wnfsWasmLoopkup(fn: (wnfsVersion: string) => Promise<BufferSource>): void;
/**
 * Override endpoints.
 *
 * You can override each of these,
 * no need to provide them all here.
 *
 * `api` Location of the Fission API
 *       (default `https://runfission.com`)
 * `apiVersion` Vesion of the Fission API
 *       (defaults to the latest version)
 * `lobby` Location of the authentication lobby.
 *         (default `https://auth.fission.codes`)
 * `user`  User's domain to use, will be prefixed by username.
 *         (default `fission.name`)
 */
export declare function endpoints(e: Partial<Endpoints>): Endpoints;
/**
 * Set implementations.
 *
 * Override how auth, crypto or storage operates in webnative.
 */
export declare function setImplementations(opts: {
    auth?: Partial<AuthImplementation>;
    crypto?: Partial<CryptoImplementation>;
    dns?: Partial<DnsImplementation>;
    storage?: Partial<StorageImplementation>;
}): void;
/**
 * Configure messages that webnative sends to users.
 *
 * `versionMismatch.newer` is shown when webnative detects
 *  that the user's filesystem is newer than what this version of webnative supports.
 * `versionMismatch.older` is shown when webnative detects that the user's
 *  filesystem is older than what this version of webnative supports.
 */
export declare function userMessages(m: Partial<UserMessages>): UserMessages;
