import { AccountSaveResult, AmmanVersion, LoadKeypairResult, SnapshotSaveResult, ValidatorPidResult, VoidResult } from '@j0nnyboi/amman-client';
import { PersistedAccountInfo, RelayReply, AccountStatesResult } from '@j0nnyboi/amman-client';
import { AccountProvider } from '../accounts/providers';
import { AccountStates } from '../accounts/state';
import { AccountPersister } from '../assets';
import { AmmanStateInternal } from '../validator/types';
export declare class RelayHandler {
    readonly accountProvider: AccountProvider;
    readonly accountPersister: AccountPersister;
    readonly snapshotPersister: AccountPersister;
    readonly ammanState: AmmanStateInternal;
    private _accountStates;
    private readonly _allKnownLabels;
    constructor(accountProvider: AccountProvider, accountPersister: AccountPersister, snapshotPersister: AccountPersister, ammanState: AmmanStateInternal, _accountStates: AccountStates, _allKnownLabels?: Record<string, string>);
    get accountStates(): AccountStates;
    private set accountStates(value);
    requestAccountStates(pubkey: string): RelayReply<AccountStatesResult>;
    get allKnownLabels(): Record<string, string>;
    updateAddressLabels(labels: Record<string, string>): RelayReply<VoidResult>;
    requestAmmanVersion(): RelayReply<AmmanVersion>;
    requestRestartValidator(): Promise<RelayReply<void>>;
    requestValidatorPid(): RelayReply<ValidatorPidResult>;
    requestKillAmman(): Promise<RelayReply<VoidResult>>;
    requestAccountSave(pubkey: string, slot?: number): Promise<RelayReply<AccountSaveResult>>;
    requestSnapshotSave(label: string): Promise<RelayReply<SnapshotSaveResult>>;
    requestLoadSnapshot(label: string): Promise<RelayReply<VoidResult>>;
    requestStoreKeypair(id: string, secretKey: Uint8Array): RelayReply<VoidResult>;
    requestLoadKeypair(id: string): RelayReply<LoadKeypairResult>;
    requestSetAccount(account: PersistedAccountInfo): Promise<RelayReply<VoidResult>>;
}
