import { default as BinaryStream } from '../../../../jsbinaryutils/src/index.ts';
import { Vector3 } from '../../../../math/src/index.ts';
import { Item } from '../../item/Item';
import { default as BlockPosition } from '../../world/BlockPosition';
import { default as DataPacket } from './DataPacket';
export declare enum UseItemAction {
    CLICK_BLOCK = 0,
    CLICK_AIR = 1,
    BREAK_BLOCK = 2
}
export declare enum TransactionType {
    NORMAL = 0,
    MISMATCH = 1,
    USE_ITEM = 2,
    USE_ITEM_ON_ENTITY = 3,
    RELASE_ITEM = 4
}
export declare class LegacySlotChange {
    containerId: number;
    slots: number[];
    constructor(containerId: number, slots: number[]);
    static fromNetwork(stream: BinaryStream): LegacySlotChange;
    toNetwork(stream: BinaryStream): void;
}
export declare enum ActionSource {
    INVALID = -1,
    CONTAINER = 0,
    GLOBAL = 1,
    WORLD = 2,
    CREATIVE = 3,
    UNTRACKED_INTERACTION_UI = 100,
    NON_IMPLEMENTED_TODO = 99999
}
export declare class InventoryAction {
    sourceType: number;
    windowId: number | null;
    sourceFlags: number | null;
    targetSlot: number;
    oldItem: Item;
    newItem: Item;
    constructor(sourceType: number, windowId: number | null, sourceFlags: number | null, targetSlot: number, oldItem: Item, newItem: Item);
    static fromNetwork(stream: BinaryStream): InventoryAction;
    toNetwork(stream: BinaryStream): void;
}
export interface TransactionData {
    actionType: number;
    hotbarSlot: number;
    itemInHand: Item;
}
export interface UseItemData extends TransactionData {
    blockPosition: BlockPosition;
    blockFace: number;
    playerPosition: Vector3;
    clickPosition: Vector3;
    blockRuntimeId: number;
}
export interface UseItemOnEntityData extends TransactionData {
    entityRuntimeId: bigint;
    playerPosition: Vector3;
    clickPosition: Vector3;
}
export interface RelaseItemData extends TransactionData {
    headRotation: Vector3;
}
export default class InventoryTransactionPacket extends DataPacket {
    static NetID: number;
    legacyRequestId: number;
    legacySlotChanges: LegacySlotChange[];
    transactionType: TransactionType;
    inventoryActions: InventoryAction[];
    transactionData: TransactionData;
    decodePayload(): void;
}
//# sourceMappingURL=InventoryTransactionPacket.d.ts.map