import { Hex } from 'viem';
import { Route, RouteSettings, SavedModules, SupportedNetworks, TransformedModuleParams, WalletWithModules } from '../../types';
import { ClientClass, ClientType } from '../clients';
export type ResponseStatus = 'passed' | 'success' | 'warning' | 'error' | 'critical';
export type TransactionCallbackParams = TransformedModuleParams & {
    client: ClientType;
};
export type TransactionWorkerProps = TransformedModuleParams & {
    baseNetwork: SupportedNetworks;
    projectName: string;
    moduleIndex: number;
    startLogMessage?: string;
};
export type TransactionCallbackResponse = {
    status: ResponseStatus;
    message?: string;
    txHash?: Hex;
    explorerLink?: string;
};
export type TransactionCallbackReturn = Promise<TransactionCallbackResponse>;
export type TransactionWorkerCallbackProp = {
    transactionCallback: (params: TransactionCallbackParams) => TransactionCallbackReturn;
};
export type TransactionWorkerPropsWithCallback = TransactionWorkerCallbackProp & TransactionWorkerProps;
export type StartModulesCallbackArgs = {
    walletWithModules: WalletWithModules;
    logsFolderName: string;
    walletsTotalCount: number;
    currentWalletIndex: number;
};
type StartModulesCallback = (args: StartModulesCallbackArgs) => Promise<any>;
export type BaseMainScriptArgs = {
    clientToPrepareWallets: ClientClass;
    logsFolderName: string;
    startModulesCallback: StartModulesCallback;
    projectName: string;
};
export interface RestartLastArgs extends BaseMainScriptArgs {
    savedModules?: SavedModules;
    walletsWithModules?: WalletWithModules[];
}
export type MainScriptArgs = BaseMainScriptArgs & {
    routeHandler: (route: Route) => RouteSettings;
    routesField: string;
};
export {};
