import { Connection, PublicKey, Transaction } from '@solana/web3.js'; import type { Commitment } from '@solana/web3.js'; import type { PublicKeyish } from './generated/protocol_types.js'; export declare const OMEGAX_PRIVATE_CLAIM_REVIEW_PROGRAM_ID = "FADqaRcJHERauzMo3BRzXZVY2qvrpPqg1ie2FGqACCVn"; export declare const PRIVATE_REVIEW_REGISTRY_SEED = "private_review_registry"; export declare const PRIVATE_REVIEW_OPERATOR_SEED = "private_review_operator"; export declare const PRIVATE_CLAIM_REVIEW_SESSION_SEED = "private_claim_review"; export declare const MAGICBLOCK_DELEGATION_PROGRAM_ID = "DELeGGvXpWV2fqJUhqcF5ZSYMS4JTLjteaAMARRSaeSh"; export declare const MAGICBLOCK_MAGIC_PROGRAM_ID = "Magic11111111111111111111111111111111111111"; export declare const MAGICBLOCK_MAGIC_CONTEXT_ID = "MagicContext1111111111111111111111111111111"; export declare const MAGICBLOCK_DEVNET_ER_RPC_URL = "https://devnet.magicblock.app/"; export declare const MAGICBLOCK_DEVNET_ER_WS_URL = "wss://devnet.magicblock.app/"; export declare const MAGICBLOCK_DEVNET_TEE_RPC_URL = "https://devnet-tee.magicblock.app/"; export declare const PRIVATE_REVIEW_STATUS_OPENED = 0; export declare const PRIVATE_REVIEW_STATUS_DELEGATED = 1; export declare const PRIVATE_REVIEW_STATUS_REVIEWED = 2; export declare const PRIVATE_REVIEW_STATUS_APPROVED = 3; export declare const PRIVATE_REVIEW_STATUS_NEEDS_MORE_INFO = 4; export declare const PRIVATE_REVIEW_STATUS_ESCALATED = 5; export declare const PRIVATE_REVIEW_STATUS_FAILED = 6; export type PrivateReviewStatus = typeof PRIVATE_REVIEW_STATUS_REVIEWED | typeof PRIVATE_REVIEW_STATUS_APPROVED | typeof PRIVATE_REVIEW_STATUS_NEEDS_MORE_INFO | typeof PRIVATE_REVIEW_STATUS_ESCALATED | typeof PRIVATE_REVIEW_STATUS_FAILED; export interface MagicBlockConnectionConfig { baseRpcUrl?: string; erRpcUrl?: string; erWsUrl?: string; teeRpcUrl?: string; commitment?: Commitment; } export interface MagicBlockConnections { baseConnection: Connection; erConnection: Connection; teeConnection: Connection; } export interface DerivePrivateClaimReviewSessionPdaParams { sessionAuthority: PublicKeyish; claimCase: PublicKeyish; sessionId: string; programId?: PublicKeyish; } export interface DerivePrivateReviewOperatorPdaParams { reviewerAuthority: PublicKeyish; programId?: PublicKeyish; } export interface InitializeReviewRegistryArgs { sessionAuthority: PublicKeyish; paymentAttestor: PublicKeyish; active?: boolean; } export interface BuildInitializeReviewRegistryTxParams extends InitializeReviewRegistryArgs { authority: PublicKeyish; registry?: PublicKeyish; programId?: PublicKeyish; } export interface BuildSetReviewRegistryAuthorityTxParams { authority: PublicKeyish; newAuthority: PublicKeyish; registry?: PublicKeyish; programId?: PublicKeyish; } export interface UpsertReviewOperatorArgs { reviewerAuthority: PublicKeyish; reviewBinaryHashHex: string; active?: boolean; } export interface BuildUpsertReviewOperatorTxParams extends UpsertReviewOperatorArgs { authority: PublicKeyish; registry?: PublicKeyish; operator?: PublicKeyish; programId?: PublicKeyish; } export interface BuildSetReviewOperatorActiveTxParams { authority: PublicKeyish; reviewerAuthority: PublicKeyish; active: boolean; registry?: PublicKeyish; operator?: PublicKeyish; programId?: PublicKeyish; } export interface OpenReviewSessionArgs { sessionId: string; claimCase: PublicKeyish; healthPlan: PublicKeyish; policySeries: PublicKeyish; evidenceRefHashHex: string; decisionSupportHashHex: string; schemaKeyHashHex: string; schemaHashHex: string; } export interface BuildOpenReviewSessionTxParams extends OpenReviewSessionArgs { payer: PublicKeyish; reviewerAuthority: PublicKeyish; registry?: PublicKeyish; operator?: PublicKeyish; reviewSession?: PublicKeyish; programId?: PublicKeyish; } export interface BuildDelegateReviewSessionTxParams { payer: PublicKeyish; claimCase: PublicKeyish; sessionId: string; reviewSession?: PublicKeyish; programId?: PublicKeyish; } export interface RecordPrivateReviewArgs { status: PrivateReviewStatus; reviewResultHashHex: string; reviewArtifactHashHex: string; reviewBinaryHashHex: string; teeAttestationDigestHex: string; } export interface BuildRecordPrivateReviewTxParams extends RecordPrivateReviewArgs { reviewer: PublicKeyish; sessionAuthority: PublicKeyish; claimCase: PublicKeyish; sessionId: string; registry?: PublicKeyish; operator?: PublicKeyish; reviewSession?: PublicKeyish; programId?: PublicKeyish; } export interface BuildRecordPrivatePaymentRefTxParams { paymentAttestor: PublicKeyish; sessionAuthority: PublicKeyish; claimCase: PublicKeyish; sessionId: string; privatePaymentRefHashHex: string; registry?: PublicKeyish; reviewSession?: PublicKeyish; programId?: PublicKeyish; } export interface BuildCommitAndCloseReviewSessionTxParams { payer: PublicKeyish; claimCase: PublicKeyish; sessionId: string; reviewSession?: PublicKeyish; programId?: PublicKeyish; } export interface BuildMarkReviewFailedTxParams { actor: PublicKeyish; sessionAuthority: PublicKeyish; claimCase: PublicKeyish; sessionId: string; failureRefHashHex: string; reviewSession?: PublicKeyish; programId?: PublicKeyish; } export interface MagicBlockExplorerLinkParams { signature: string; cluster?: 'devnet' | 'mainnet-beta' | 'custom'; er?: boolean; } export interface PrivatePaymentsBuildRequest { endpoint: '/v1/spl/deposit' | '/v1/spl/transfer' | '/v1/spl/withdraw' | '/v1/spl/initialize-mint'; body: Record; apiUrl?: string; } export interface PrivateReviewRegistryAccount { address: PublicKey; authority: PublicKey; sessionAuthority: PublicKey; paymentAttestor: PublicKey; active: boolean; operatorCount: number; createdAt: bigint; updatedAt: bigint; bump: number; } export interface PrivateReviewOperatorAccount { address: PublicKey; registry: PublicKey; reviewerAuthority: PublicKey; reviewBinaryHashHex: string; active: boolean; createdAt: bigint; updatedAt: bigint; bump: number; } export interface PrivateClaimReviewSessionAccount { address: PublicKey; sessionId: string; sessionAuthority: PublicKey; claimCase: PublicKey; healthPlan: PublicKey; policySeries: PublicKey; evidenceRefHashHex: string; decisionSupportHashHex: string; schemaKeyHashHex: string; schemaHashHex: string; reviewOperator: PublicKey; reviewerAuthority: PublicKey; paymentAttestor: PublicKey; reviewResultHashHex: string; reviewArtifactHashHex: string; reviewBinaryHashHex: string; teeAttestationDigestHex: string; operator: PublicKey; privatePaymentRefHashHex: string; status: number; openedAt: bigint; delegatedAt: bigint; reviewedAt: bigint; paymentRecordedAt: bigint; committedAt: bigint; failedAt: bigint; bump: number; } export declare function createMagicBlockConnections(config?: MagicBlockConnectionConfig): MagicBlockConnections; export declare function derivePrivateReviewRegistryPda(programId?: PublicKeyish): PublicKey; export declare function derivePrivateReviewOperatorPda(params: DerivePrivateReviewOperatorPdaParams): PublicKey; export declare function derivePrivateClaimReviewSessionPda(params: DerivePrivateClaimReviewSessionPdaParams): PublicKey; export declare function isDelegatedAccountOwner(owner: PublicKeyish): boolean; export declare function waitForMagicBlockCommitmentSignature(erSignature: string, erConnection: Connection): Promise; export declare function buildMagicBlockExplorerLink(params: MagicBlockExplorerLinkParams): string; export declare function buildInitializeReviewRegistryTx(params: BuildInitializeReviewRegistryTxParams): Transaction; export declare function buildSetReviewRegistryAuthorityTx(params: BuildSetReviewRegistryAuthorityTxParams): Transaction; export declare function buildUpsertReviewOperatorTx(params: BuildUpsertReviewOperatorTxParams): Transaction; export declare function buildSetReviewOperatorActiveTx(params: BuildSetReviewOperatorActiveTxParams): Transaction; export declare function buildOpenReviewSessionTx(params: BuildOpenReviewSessionTxParams): Transaction; export declare function buildDelegateReviewSessionTx(params: BuildDelegateReviewSessionTxParams): Transaction; export declare function buildRecordPrivateReviewTx(params: BuildRecordPrivateReviewTxParams): Transaction; export declare function buildRecordPrivatePaymentRefTx(params: BuildRecordPrivatePaymentRefTxParams): Transaction; export declare function buildCommitAndCloseReviewSessionTx(params: BuildCommitAndCloseReviewSessionTxParams): Transaction; export declare function buildMarkReviewFailedTx(params: BuildMarkReviewFailedTxParams): Transaction; export declare function fetchPrivateReviewOperator(connection: Pick, params: DerivePrivateReviewOperatorPdaParams): Promise; export declare function fetchPrivateClaimReviewSession(connection: Pick, params: DerivePrivateClaimReviewSessionPdaParams): Promise; export declare function verifyActivePrivateReviewOperator(connection: Pick, params: DerivePrivateReviewOperatorPdaParams & { expectedReviewBinaryHashHex?: string; }): Promise; export declare function verifyCommittedApprovedReviewSession(connection: Pick, params: DerivePrivateClaimReviewSessionPdaParams & { expectedReviewResultHashHex: string; expectedReviewBinaryHashHex: string; expectedPrivatePaymentRefHashHex?: string; }): Promise; export declare function buildPrivatePaymentsApiTransaction(params: PrivatePaymentsBuildRequest): Promise; export declare function privatePaymentReferenceHash(payload: unknown): string; export declare function deriveMagicBlockDelegateAccounts(params: { delegatedAccount: PublicKeyish; ownerProgram?: PublicKeyish; }): { delegateBuffer: PublicKey; delegationRecord: PublicKey; delegationMetadata: PublicKey; }; export declare function decodePrivateReviewRegistryAccount(address: PublicKeyish, data: Buffer | Uint8Array): PrivateReviewRegistryAccount; export declare function decodePrivateReviewOperatorAccount(address: PublicKeyish, data: Buffer | Uint8Array): PrivateReviewOperatorAccount; export declare function decodePrivateClaimReviewSessionAccount(address: PublicKeyish, data: Buffer | Uint8Array): PrivateClaimReviewSessionAccount;