///
import { AccountNamespace, AnchorProvider, EventParser, Idl, Program, Wallet } from '@coral-xyz/anchor';
import { CompiledInstruction, MemcmpFilter, Connection, TransactionResponse } from '@solana/web3.js';
import { IAnchorIdl, IAnchorIdlDecodedInstruction } from '../interfaces';
import { IMap } from '../types';
import { SolanaKey } from '../utils';
import { BaseLoggerService } from './base-logger.service';
import { SolanaApiService } from './solana';
export declare class AnchorService {
protected readonly logger: BaseLoggerService;
protected readonly solanaApi: SolanaApiService;
private isInitialized;
readonly logPrefix = "[Anchor]";
readonly SIGHASH_STATE_NAMESPACE = "state";
readonly SIGHASH_GLOBAL_NAMESPACE = "global";
readonly programCache: IMap | null> | null>;
connection?: Connection;
wallet?: Wallet;
constructor(logger: BaseLoggerService, solanaApi: SolanaApiService);
init(wallet?: Wallet, connection?: Connection): Promise;
decodeInstruction(tx: TransactionResponse, ix: CompiledInstruction): Promise;
getNameFromIxData(program: Program, data: string): Promise;
getDiscriminators(programId: SolanaKey): Promise>;
getProgramIdlString(programId: SolanaKey): Promise;
getProgramIdl(programId: SolanaKey): Promise;
getProgramIdlAddress(programId: SolanaKey): Promise;
getProgramInstructionDiscriminator(programId: SolanaKey, instructionName: string): Promise<[string, string] | null>;
loadCorePrograms(): Promise;
loadProgram(programId: SolanaKey, idl: IDL, wallet?: Wallet, connection?: Connection): Promise>;
getProgram(programId: SolanaKey, wallet?: Wallet, connection?: Connection): Promise | null>;
decodeProgramAccount(programId: SolanaKey, accountName: string, accountNameDecode: string, data: Buffer): Promise;
decodeProgramAccountSync(program: Program, name: keyof AccountNamespace, data: Buffer): T;
encodeProgramAccount(programId: SolanaKey, accountName: string, data: T): Promise;
accountDiscriminator(name: string): Buffer;
accountMemCmp(program: Program, name: keyof AccountNamespace): MemcmpFilter;
getAccountLength(programId: SolanaKey, accountName: string): Promise;
getProvider(wallet?: Wallet, connection?: Connection): AnchorProvider;
getParser(programId: SolanaKey): Promise;
private sighash;
private getProgramPromise;
}
//# sourceMappingURL=anchor.service.d.ts.map