import { WalletClient, PublicClient, Chain, Hex, Transport, Account, Address, TypedData } from 'viem';
import { D as DeleGatorEnvironment } from './types-DvZXSma6.cjs';

type SupportedVersion = '1.0.0' | '1.1.0' | '1.2.0' | '1.3.0';
declare const PREFERRED_VERSION: SupportedVersion;
declare function overrideDeployedEnvironment(chainId: number, version: SupportedVersion, environment: DeleGatorEnvironment): void;
declare function getDeleGatorEnvironment(chainId: number, version?: SupportedVersion): DeleGatorEnvironment;
declare function deployDeleGatorEnvironment(walletClient: WalletClient, publicClient: PublicClient, chain: Chain, deployedContracts?: {
    [contract: string]: Hex;
}): Promise<DeleGatorEnvironment>;

type UserOperationV07 = {
    sender: Hex;
    nonce: bigint;
    factory?: Hex;
    factoryData?: Hex;
    callData: Hex;
    callGasLimit: bigint;
    verificationGasLimit: bigint;
    preVerificationGas: bigint;
    maxFeePerGas: bigint;
    maxPriorityFeePerGas: bigint;
    paymaster?: Hex;
    paymasterVerificationGasLimit?: bigint;
    paymasterPostOpGasLimit?: bigint;
    paymasterData?: Hex;
    signature: Hex;
};
declare const SIGNABLE_USER_OP_TYPED_DATA: TypedData;
declare const signUserOperation: ({ signer, userOperation, entryPoint, chainId, name, address, version, }: {
    signer: WalletClient<Transport, Chain, Account>;
    userOperation: Omit<UserOperationV07, 'signature'>;
    entryPoint: {
        address: Address;
    };
    chainId: number;
    address: Address;
    name: 'HybridDeleGator' | 'MultiSigDeleGator';
    version?: string | undefined;
}) => Promise<`0x${string}`>;

export { PREFERRED_VERSION as P, SIGNABLE_USER_OP_TYPED_DATA as S, deployDeleGatorEnvironment as d, getDeleGatorEnvironment as g, overrideDeployedEnvironment as o, signUserOperation as s };
