import { RecordMetaData } from '@sentio/protos';
import { type Labels } from '../index.js';
import { SuiNetwork } from './network.js';
import { SuiTransactionBlockResponse, SuiEvent, SuiMoveNormalizedModule, SuiMoveObject, SuiJsonRpcClient } from '@mysten/sui/jsonRpc';
import { MoveCoder } from './index.js';
import { MoveAccountContext, MoveContext } from '../move/index.js';
export declare class SuiContext extends MoveContext<SuiNetwork, SuiMoveNormalizedModule, SuiEvent | SuiMoveObject> {
    moduleName: string;
    timestamp: Date;
    checkpoint: bigint;
    transaction: SuiTransactionBlockResponse;
    eventIndex: number;
    coder: MoveCoder;
    constructor(moduleName: string, network: SuiNetwork, address: string, timestamp: Date, checkpoint: bigint, transaction: SuiTransactionBlockResponse, eventIndex: number, baseLabels: Labels | undefined);
    getChainId(): import("@sentio/chain").SuiChainId;
    getTimestamp(): number;
    getMetaDataInternal(name: string, labels: Labels): RecordMetaData;
    get client(): SuiJsonRpcClient;
}
export declare class SuiObjectChangeContext extends MoveContext<SuiNetwork, SuiMoveNormalizedModule, SuiEvent | SuiMoveObject> {
    timestamp: Date;
    checkpoint: bigint;
    coder: MoveCoder;
    txDigest: string;
    constructor(network: SuiNetwork, address: string, timestamp: Date, checkpoint: bigint, txDigest: string, baseLabels: Labels | undefined);
    getChainId(): import("@sentio/chain").SuiChainId;
    getTimestamp(): number;
    getMetaDataInternal(name: string, labels: Labels): RecordMetaData;
    get client(): SuiJsonRpcClient;
}
export declare class SuiAddressContext extends MoveAccountContext<SuiNetwork, SuiMoveNormalizedModule, SuiEvent | SuiMoveObject> {
    address: string;
    network: SuiNetwork;
    checkpoint: bigint;
    timestamp: Date;
    coder: MoveCoder;
    protected contractName: string;
    constructor(network: SuiNetwork, address: string, checkpoint: bigint, timestamp: Date, baseLabels: Labels | undefined);
    getChainId(): import("@sentio/chain").SuiChainId;
    getMetaDataInternal(name: string, labels: Labels): RecordMetaData;
    get client(): SuiJsonRpcClient;
    getTimestamp(): number;
}
export declare class SuiObjectContext extends SuiAddressContext {
    contractName: string;
    objectId: string;
    objectVersion: bigint;
    constructor(network: SuiNetwork, objectId: string, objectVersion: bigint, checkpoint: bigint, timestamp: Date, baseLabels: Labels | undefined);
}
//# sourceMappingURL=context.d.ts.map