import { PrivateKey, type NetworkId } from 'o1js';
import type { Logger } from 'esm-iso-logger';
import { NoriTokenBridge } from '../../NoriTokenBridge.js';
export type AdminBinConfig = {
    adminKey: PrivateKey;
    tokenBridgePrivateKey: PrivateKey;
    networkUrl: string;
    networkId: NetworkId;
    fee: number;
};
/**
 * Parse and validate the env vars common to all admin bin scripts.
 * `extraValidations` is called to collect script-specific issues.
 * Exits the process if any issues are found.
 */
export declare function parseAdminBinEnv(logger: Logger, scriptName: string, extraValidations?: (issues: string[]) => void): AdminBinConfig;
/**
 * Set up the Mina network, compile contracts, and return a NoriTokenBridge
 * instance bound to the token bridge address.
 */
export declare function setupNetworkAndCompile(logger: Logger, config: AdminBinConfig): Promise<NoriTokenBridge>;
/**
 * Build, prove, sign, send, and wait for an admin transaction.
 */
export declare function submitAdminTx(logger: Logger, config: AdminBinConfig, txBody: () => Promise<void>): Promise<void>;
