import { RefetchOptions } from '@tanstack/react-query';
import { Input, Output, RequestStatusEnum, RouteDetails, STATUS_CODE } from '../../../types/index';
import { ManualRefuel, OrderFlowType, RequestType, Rewards, TxData } from '../common/quote/types';

export declare const useAutoHistory: ({ userAddresses, pageSize, pageNumber, }: {
    userAddresses: (string | undefined)[];
    pageSize: number;
    pageNumber: number;
}) => {
    error: string | undefined;
    isError: boolean;
    isLoading: boolean;
    isSuccess: boolean;
    data: AutoOrderData[];
    totalPages: number;
    refetch: (options?: RefetchOptions) => Promise<import('@tanstack/react-query').QueryObserverResult<{
        requests: AutoOrderData[];
        totalRequests: number;
    }, Error>[]>;
};
export interface BaseOrderData {
    routingMode: "auto" | "manual";
    input: Input[];
    output: Output[];
    orderTimestamp: number;
    srcTimestamp: number;
    destTimestamp?: number;
    statusCode: STATUS_CODE;
    sender: string;
    receiver: string;
    requestHash: string;
    status: keyof typeof RequestStatusEnum;
    swapTime: number;
    primaryInput: Input;
    primaryOutput: Output;
    isSwapRoute: boolean;
    flowType: OrderFlowType;
}
export interface AutoOrderData extends BaseOrderData {
    routingMode: "auto";
    txData: TxData | null;
    requestType: RequestType;
    quoteId: string;
    rewards?: Rewards;
    slippage: number | null;
    suggestedClientSlippage?: number;
    batchId?: string;
}
export interface ManualOrderData extends BaseOrderData {
    routingMode: "manual";
    routeId: string;
    protocol: RouteDetails;
    estimatedFulfilTime: number;
    refuel: ManualRefuel | null;
    slippage: number;
    batchId?: string;
}
export type OrderData = AutoOrderData | ManualOrderData;
