///
import { PersistedAccountInfo } from '@metaplex-foundation/amman-client';
import { Keypair } from '@solana/web3.js';
import { ChildProcess } from 'child_process';
import { AccountStates } from 'src/accounts/state';
import { AmmanConfig } from '../types';
import { AmmanState } from './types';
export declare function buildSolanaValidatorArgs(config: Required, forceClone: boolean): Promise<{
args: string[];
persistedAccountInfos: PersistedAccountInfo[];
persistedSnapshotAccountInfos: (PersistedAccountInfo & {
label: string;
accountPath: string;
})[];
snapshotAccounts: import("./types").Account[];
accountsFolder: string;
keypairs: Map;
cleanupConfig: () => Promise;
}>;
export declare function startSolanaValidator(args: string[], detached: boolean): Promise;
export declare function waitForValidator(jsonRpcUrl: string, verifyFees: boolean, cleanupConfig: () => Promise): Promise;
export declare function killValidatorChild(child: ChildProcess): Promise;
/**
* Attempts to kill and restart the validator creating a snapshot of accounts and keypairs first.
* That same snapshot is then loaded on restart.
*
* @param accountOverrides allow to override some accounts that are written to the snapshot
*
*/
export declare function restartValidatorWithAccountOverrides(accountStates: AccountStates, ammanState: AmmanState, addresses: string[], accountLabels: Record, keypairs: Map, accountOverrides: Map): Promise<{
persistedAccountInfos: PersistedAccountInfo[];
persistedSnapshotAccountInfos: (PersistedAccountInfo & {
label: string;
accountPath: string;
})[];
snapshotAccounts: import("./types").Account[];
accountsFolder: string;
keypairs: Map;
args: string[];
}>;
/**
* Attempts to kill and restart the validator with the given snapshot.
*/
export declare function restartValidatorWithSnapshot(accountStates: AccountStates, ammanState: AmmanState, snapshotLabel: string): Promise<{
persistedAccountInfos: PersistedAccountInfo[];
persistedSnapshotAccountInfos: (PersistedAccountInfo & {
label: string;
accountPath: string;
})[];
snapshotAccounts: import("./types").Account[];
accountsFolder: string;
keypairs: Map;
args: string[];
}>;
/**
* Attempts to kill and restart the validator with the provided config.
*
* NOTE: that for now this seems to only work once, i.e. the validator fails to
* handle transactions after it is restarted twice (they time out after 30secs)
*
*/
export declare function restartValidator(accountStates: AccountStates, ammanState: AmmanState, config: Required): Promise<{
persistedAccountInfos: PersistedAccountInfo[];
persistedSnapshotAccountInfos: (PersistedAccountInfo & {
label: string;
accountPath: string;
})[];
snapshotAccounts: import("./types").Account[];
accountsFolder: string;
keypairs: Map;
args: string[];
}>;