import type { HardhatRuntimeEnvironment } from "hardhat/types/hre";
import { Interfold } from "../../types";
/**
 * Timeout configuration for E3 stages
 */
export interface E3TimeoutConfig {
    dkgWindow: number;
    computeWindow: number;
    decryptionWindow: number;
}
/**
 * The arguments for the deployAndSaveInterfold function
 */
export interface InterfoldArgs {
    owner?: string;
    maxDuration?: string;
    registry?: string;
    bondingRegistry?: string;
    e3RefundManager?: string;
    feeToken?: string;
    timeoutConfig?: E3TimeoutConfig;
    hre: HardhatRuntimeEnvironment;
}
/**
 * Deploys the Interfold contract and saves the deployment arguments
 * @param param0 - The deployment arguments
 * @returns The deployed Interfold contract
 */
export declare const deployAndSaveInterfold: ({ owner, maxDuration, registry, bondingRegistry, e3RefundManager, feeToken, timeoutConfig, hre, }: InterfoldArgs) => Promise<{
    interfold: Interfold;
}>;
/**
 * Upgrades the Interfold implementation while keeping the same proxy address
 * @param param0 - The upgrade arguments
 * @returns The upgraded Interfold contract (same proxy address)
 */
export declare const upgradeAndSaveInterfold: ({ ownerAddress, hre, }: {
    ownerAddress: string;
    hre: HardhatRuntimeEnvironment;
}) => Promise<{
    interfold: Interfold;
    implementationAddress: string;
}>;
//# sourceMappingURL=interfold.d.ts.map