import type { Device } from "../../hw/actions/types";
import type { OnboardingStatePollingResult, GetOnboardingStatePollingArgs, GetOnboardingStatePollingResult } from "../../hw/getOnboardingStatePolling";
export type UseOnboardingStatePollingResult = OnboardingStatePollingResult & {
    fatalError: Error | null;
    resetStates: () => void;
};
export type UseOnboardingStatePollingDependencies = {
    getOnboardingStatePolling?: (args: GetOnboardingStatePollingArgs) => GetOnboardingStatePollingResult;
};
export type UseOnboardingStatePollingArgs = UseOnboardingStatePollingDependencies & {
    device: Device | null;
    pollingPeriodMs: number;
    stopPolling?: boolean;
    allowedErrorChecks?: ((error: unknown) => boolean)[];
};
/**
 * Polls the current device onboarding state, and notify the hook consumer of
 * any allowed errors and fatal errors
 * @param getOnboardingStatePolling A polling function, by default set to live-common/hw/getOnboardingStatePolling.
 * This dependency injection is needed for LLD to have the polling working on the internal thread
 * @param device A Device object
 * @param pollingPeriodMs The period in ms after which the device onboarding state is fetched again
 * @param stopPolling Flag to stop or continue the polling
 * @returns An object containing:
 * - onboardingState: the device state during the onboarding
 * - allowedError: any error that is allowed and does not stop the polling
 * - fatalError: any error that is fatal and stops the polling
 * - lockedDevice: a boolean set to true if the device is currently locked, false otherwise
 * - resetStates: a function to reset the values of: onboardingState, allowedError, fatalError and lockedDevice
 */
export declare const useOnboardingStatePolling: ({ getOnboardingStatePolling, device, pollingPeriodMs, stopPolling, allowedErrorChecks, }: UseOnboardingStatePollingArgs) => UseOnboardingStatePollingResult;
//# sourceMappingURL=useOnboardingStatePolling.d.ts.map