import { MessageType } from "@protobuf-ts/runtime";
import { Owner } from "./owner.js";
import { ObjectReference } from "./object_reference.js";
import { GasCostSummary } from "./gas_cost_summary.js";
import { ExecutionStatus } from "./execution_status.js";
import { Bcs } from "./bcs.js";
export interface TransactionEffects {
    bcs?: Bcs;
    digest?: string;
    version?: number;
    status?: ExecutionStatus;
    epoch?: bigint;
    gasUsed?: GasCostSummary;
    transactionDigest?: string;
    gasObject?: ChangedObject;
    eventsDigest?: string;
    dependencies: string[];
    lamportVersion?: bigint;
    changedObjects: ChangedObject[];
    unchangedConsensusObjects: UnchangedConsensusObject[];
    auxiliaryDataDigest?: string;
    unchangedLoadedRuntimeObjects: ObjectReference[];
}
export interface ChangedObject {
    objectId?: string;
    inputState?: ChangedObject_InputObjectState;
    inputVersion?: bigint;
    inputDigest?: string;
    inputOwner?: Owner;
    outputState?: ChangedObject_OutputObjectState;
    outputVersion?: bigint;
    outputDigest?: string;
    outputOwner?: Owner;
    idOperation?: ChangedObject_IdOperation;
    objectType?: string;
}
export declare enum ChangedObject_InputObjectState {
    UNKNOWN = 0,
    DOES_NOT_EXIST = 1,
    EXISTS = 2
}
export declare enum ChangedObject_OutputObjectState {
    UNKNOWN = 0,
    DOES_NOT_EXIST = 1,
    OBJECT_WRITE = 2,
    PACKAGE_WRITE = 3
}
export declare enum ChangedObject_IdOperation {
    ID_OPERATION_UNKNOWN = 0,
    NONE = 1,
    CREATED = 2,
    DELETED = 3
}
export interface UnchangedConsensusObject {
    kind?: UnchangedConsensusObject_UnchangedConsensusObjectKind;
    objectId?: string;
    version?: bigint;
    digest?: string;
    objectType?: string;
}
export declare enum UnchangedConsensusObject_UnchangedConsensusObjectKind {
    UNCHANGED_CONSENSUS_OBJECT_KIND_UNKNOWN = 0,
    READ_ONLY_ROOT = 1,
    MUTATE_CONSENSUS_STREAM_ENDED = 2,
    READ_CONSENSUS_STREAM_ENDED = 3,
    CANCELED = 4,
    PER_EPOCH_CONFIG = 5
}
declare class TransactionEffects$Type extends MessageType<TransactionEffects> {
    constructor();
}
export declare const TransactionEffects: TransactionEffects$Type;
declare class ChangedObject$Type extends MessageType<ChangedObject> {
    constructor();
}
export declare const ChangedObject: ChangedObject$Type;
declare class UnchangedConsensusObject$Type extends MessageType<UnchangedConsensusObject> {
    constructor();
}
export declare const UnchangedConsensusObject: UnchangedConsensusObject$Type;
export {};
