import type { Observable } from 'rxjs';
import type { RaidenState } from '../../state';
import type { matrixPresence } from '../../transport/actions';
import type { Latest, RaidenEpicDeps } from '../../types';
import { Signed } from '../../utils/types';
import { iouClear, iouPersist, pathFind } from '../actions';
import type { Paths } from '../types';
import { IOU, PfsError } from '../types';
declare type RouteResult = {
    iou: Signed<IOU> | undefined;
} & ({
    paths: Paths;
} | {
    error: PfsError;
});
/**
 * Returns a ISO string with millisecond resolution (same as PC)
 *
 * @param time - Date instance
 * @returns string representing time in the format expected by PFS
 */
export declare function makeTimestamp(time?: Date): string;
/**
 * @param action - pfs request action
 * @param deps - Epics dependencies
 * @param latest - Latest object
 * @param latest.state - Latest state
 * @param latest.config - Latest config
 * @param targetPresence - Current presence of target
 * @returns Observable containing paths, new iou or error
 */
export declare function getRoute$(action: pathFind.request, deps: RaidenEpicDeps, { state, config }: Pick<Latest, 'state' | 'config'>, targetPresence: matrixPresence.success): Observable<RouteResult>;
/**
 * @param opts - validation options
 * @param opts."0" - pfs request action
 * @param opts."1" - Received route to validate
 * @param state - Latest RaidenState
 * @param deps - Epics dependencies
 * @returns Observable of results actions after route is validated
 */
export declare function validateRoute$([action, route]: readonly [action: pathFind.request, route: RouteResult], state: RaidenState, deps: RaidenEpicDeps): Observable<pathFind.success | iouPersist | iouClear>;
export {};
