import { type ChildProcess } from 'child_process';
import { type TestChainMetadata } from '@hyperlane-xyz/provider-sdk/chain';
import { type StartedTestContainer } from 'testcontainers';
export declare const SOLANA_VALIDATOR_IMAGE = "ghcr.io/hyperlane-xyz/hyperlane-solana-validator:v3.0.14";
export declare function isAppleSilicon(): boolean;
export declare function findSolanaTestValidator(): string | null;
export interface PreloadedProgram {
    programId: string;
    soPath: string;
}
export interface SolanaValidatorConfig {
    image?: string;
    keepRunning?: boolean;
    validatorArgs?: string[];
    binaryPath?: string;
    rpcPort: number;
    preloadedPrograms?: PreloadedProgram[];
}
export interface SolanaTestValidator {
    rpcUrl: string;
    mode: 'local' | 'docker';
    stop(): Promise<void>;
    container?: StartedTestContainer;
    process?: ChildProcess;
}
/**
 * Starts a Solana test validator and waits for the RPC to be ready.
 * Uses a local binary if available, otherwise falls back to Docker (Linux only).
 *
 * @param chainMetadata - Test chain metadata (defaults to TEST_SVM_CHAIN_METADATA)
 * @param preloadedPrograms - Programs to preload into the validator
 */
export declare function runSolanaNode(chainMetadata?: TestChainMetadata, preloadedPrograms?: PreloadedProgram[]): Promise<SolanaTestValidator>;
//# sourceMappingURL=solana-container.d.ts.map