import SafeApiKit, { type SafeApiKitConfig } from '@safe-global/api-kit';
import Safe, { SafeProviderConfig } from '@safe-global/protocol-kit';
import { Address } from '@hyperlane-xyz/utils';
import { MultiProvider } from '../providers/MultiProvider.js';
import { ChainName, ChainNameOrId } from '../types.js';
export declare const SAFE_API_RETRIES = 10;
export declare const SAFE_API_BASE_RETRY_MS = 1000;
type SafeApiKitInstance = SafeApiKit.default;
export declare function safeApiKeyRequired(txServiceUrl: string): boolean;
export declare function normalizeSafeTxServiceUrl(txServiceUrl: string): string;
export declare function isSafeGlobalTxServiceUrl(txServiceUrl: string): boolean;
export declare function getSafeApiKitConfig(chainId: number, txServiceUrl: string, gnosisSafeApiKey?: string): SafeApiKitConfig;
export declare function getSafeService(chain: ChainNameOrId, multiProvider: MultiProvider): SafeApiKitInstance;
export declare function getSafe(chain: ChainName, multiProvider: MultiProvider, safeAddress: Address, signer?: SafeProviderConfig['signer']): Promise<Safe.default>;
export declare function getSafeDelegates(service: SafeApiKitInstance, safeAddress: Address): Promise<string[]>;
export declare function canProposeSafeTransactions(proposer: Address, chain: ChainName, multiProvider: MultiProvider, safeAddress: Address): Promise<boolean>;
export {};
//# sourceMappingURL=gnosisSafe.d.ts.map