import React from "react";
import { Observable } from "rxjs";
import type { ExchangeSwap, ExchangeRate, InitSwapInput, InitSwapResult, SwapRequestEvent, SwapTransaction } from "../../exchange/swap/types";
import type { ConnectAppEvent, Input as ConnectAppInput } from "../connectApp";
import type { AppState } from "./app";
import type { Action, Device } from "./types";
import type { TransactionStatus } from "../../generated/types";
type State = {
    initSwapResult: InitSwapResult | null | undefined;
    initSwapRequested: boolean;
    initSwapError: Error | null | undefined;
    swapId?: string;
    error?: Error;
    isLoading: boolean;
    freezeReduxDevice: boolean;
};
type InitSwapState = AppState & State;
type InitSwapRequest = {
    exchange: ExchangeSwap;
    exchangeRate: ExchangeRate;
    transaction: SwapTransaction;
    requireLatestFirmware?: boolean;
    status?: TransactionStatus;
    device?: React.RefObject<Device | null | undefined>;
};
type Result = {
    initSwapResult: InitSwapResult;
} | {
    initSwapError: Error;
    swapId?: string;
};
type InitSwapAction = Action<InitSwapRequest, InitSwapState, Result>;
export declare const createAction: (connectAppExec: (arg0: ConnectAppInput) => Observable<ConnectAppEvent>, initSwapExec: (arg0: InitSwapInput) => Observable<SwapRequestEvent>) => InitSwapAction;
export {};
//# sourceMappingURL=initSwap.d.ts.map