import { EnclaveSDK, type AllEventTypes, type EventCallback, EnclaveEventType, RegistryEventType } from "@gnosis-guild/enclave/sdk";
export interface UseEnclaveSDKConfig {
    contracts?: {
        enclave: `0x${string}`;
        ciphernodeRegistry: `0x${string}`;
    };
    chainId?: number;
    autoConnect?: boolean;
}
export interface UseEnclaveSDKReturn {
    sdk: EnclaveSDK | null;
    isInitialized: boolean;
    error: string | null;
    requestE3: typeof EnclaveSDK.prototype.requestE3;
    activateE3: typeof EnclaveSDK.prototype.activateE3;
    publishInput: typeof EnclaveSDK.prototype.publishInput;
    onEnclaveEvent: <T extends AllEventTypes>(eventType: T, callback: EventCallback<T>) => void;
    off: <T extends AllEventTypes>(eventType: T, callback: EventCallback<T>) => void;
    EnclaveEventType: typeof EnclaveEventType;
    RegistryEventType: typeof RegistryEventType;
}
/**
 * React hook for interacting with Enclave SDK
 *
 * @param config Configuration for the SDK initialization
 * @returns Object containing SDK instance and helper methods
 *
 * @example
 * ```tsx
 * import { useEnclaveSDK } from '@gnosis-guild/enclave-react';
 *
 * function MyComponent() {
 *   const {
 *     sdk,
 *     isInitialized,
 *     error,
 *     requestE3,
 *     onEnclaveEvent
 *   } = useEnclaveSDK({
 *     autoConnect: true,
 *     contracts: {
 *       enclave: '0x...',
 *       ciphernodeRegistry: '0x...'
 *     }
 *   });
 *
 *   // Use the SDK...
 * }
 * ```
 */
export declare const useEnclaveSDK: (config: UseEnclaveSDKConfig) => UseEnclaveSDKReturn;
//# sourceMappingURL=useEnclaveSDK.d.ts.map