import type { ContractInfo, EngineBinding, SentTransaction } from './binding.js';
import type { UpgradeProxyOptions } from './options.js';
export interface UpgradeResult {
    proxyAddress: string;
    sent: SentTransaction;
}
/**
 * Client-neutral orchestration of `upgradeProxy`: deploys (or reuses) the new implementation,
 * then sends the upgrade transaction to the proxy or its admin, choosing the right entrypoint
 * based on the on-chain upgrade interface version. Returns the upgrade transaction.
 */
export declare function upgradeProxy(binding: EngineBinding, proxyAddress: string, implInfo: ContractInfo, opts: UpgradeProxyOptions, log?: import("debug").Debugger): Promise<UpgradeResult>;
//# sourceMappingURL=upgrade-proxy.d.ts.map