/** @packageDocumentation
 * @module NativeApp
 */
import { BeEvent } from "@itwin/core-bentley";
import { InternetConnectivityStatus, NativeAppNotifications, OverriddenBy } from "@itwin/core-common";
import { IpcHostOpts } from "./IpcHost";
import { NativeAppStorage } from "./NativeAppStorage";
/** Options for [[NativeHost.startup]]
 * @public
 */
export interface NativeHostOpts extends IpcHostOpts {
    nativeHost?: {
        /** Application name. Used, for example, to name the settings file. If not supplied, defaults to "iTwinApp". */
        applicationName?: string;
    };
}
/**
 * Backend for desktop/mobile native applications
 * @public
 */
export declare class NativeHost {
    private static _reachability?;
    private static _applicationName;
    private constructor();
    /** Event called when the internet connectivity changes, if known. */
    static readonly onInternetConnectivityChanged: BeEvent<(status: InternetConnectivityStatus) => void>;
    private static _appSettingsCacheDir?;
    /** Get the local cache folder for application settings */
    static get appSettingsCacheDir(): string;
    /** Send a notification to the NativeApp connected to this NativeHost. */
    static notifyNativeFrontend<T extends keyof NativeAppNotifications>(methodName: T, ...args: Parameters<NativeAppNotifications[T]>): void;
    private static _isValid;
    static get isValid(): boolean;
    static get applicationName(): string;
    /** Get the settings store for this NativeHost. */
    static get settingsStore(): NativeAppStorage;
    /**
     * Start the backend of a native app.
     * @note this method calls [[IpcHost.startup]] internally.
     */
    static startup(opt?: NativeHostOpts): Promise<void>;
    /** Shutdown native app backend. Also calls [[IpcHost.shutdown]] */
    static shutdown(): Promise<void>;
    /** get current value of internet connectivity */
    static checkInternetConnectivity(): InternetConnectivityStatus;
    /**
     * Override internet connectivity state
     * @param _overridenBy who overrode the value.
     * @internal
     */
    static overrideInternetConnectivity(_overridenBy: OverriddenBy, status: InternetConnectivityStatus): void;
}
//# sourceMappingURL=NativeHost.d.ts.map